Here is the Insert into select query which selects multiple rows from GradePackages
table and inserts the data into EmployeePackages
table:
insert into EmployeePackages (EmployeeId, GradeId, PackageId, Amount)
select
@EmployeeId,
@GradeId,
PackageId,
Amount
from
GradePackages
where
GradeId = @GradeId
Here @EmployeeId
and GradeId
have a single value each. But PackageId
and Amount
, each of them have 5 values.
The Insert query works fine, but the problem is with the update query. I need to update i.e. copy rows from the GradePackages
table (where I input a specific GradeId
) into the EmployeePackages
table (where specific EmployeeId
is input). I know it will work on a single row but there are multiple rows and that is the problem. I have tried different types of Update queries but it doesn't work. Have a look please. Thank you.
EmployeePackages
table:
Id | EmployeeId | GradeId | PackageId | Amount |
---|---|---|---|---|
13 | 1036 | 30 | 1 | 29980.00 |
14 | 1036 | 30 | 2 | 5000.00 |
15 | 1036 | 30 | 3 | 0.00 |
16 | 1036 | 30 | 4 | 0.00 |
17 | 1036 | 30 | 5 | 0.00 |
18 | 1037 | 31 | 1 | 34000.00 |
19 | 1037 | 31 | 2 | 6000.00 |
20 | 1037 | 31 | 3 | 0.00 |
21 | 1037 | 31 | 4 | 0.00 |
22 | 1037 | 31 | 5 | 0.00 |
GradePackages
table:
Id | GradeId | PackageId | Amount |
---|---|---|---|
11 | 30 | 1 | 34650.00 |
12 | 30 | 2 | 5000.00 |
13 | 30 | 3 | 0.00 |
14 | 30 | 4 | 0.00 |
15 | 30 | 5 | 0.00 |
16 | 29 | 1 | 41090.00 |
17 | 29 | 2 | 6000.00 |
18 | 29 | 3 | 0.00 |
19 | 29 | 4 | 0.00 |
20 | 29 | 5 | 0.00 |
Output needed (EmployeePackages
):
Id | EmployeeId | GradeId | PackageId | Amount |
---|---|---|---|---|
13 | 1036 | 29 | 1 | 41090.00 |
14 | 1036 | 29 | 2 | 6000.00 |
15 | 1036 | 29 | 3 | 0.00 |
16 | 1036 | 29 | 4 | 0.00 |
17 | 1036 | 29 | 5 | 0.00 |
18 | 1037 | 31 | 1 | 34000.00 |
19 | 1037 | 31 | 2 | 6000.00 |
20 | 1037 | 31 | 3 | 0.00 |
21 | 1037 | 31 | 4 | 0.00 |
22 | 1037 | 31 | 5 | 0.00 |
Expected results:
Let's say I select
rows with GradeId = 29
(5 rows) from GradePackages
and update EmployeePackages where EmployeeId = 1036