June 11, 2020 at 2:33 am
Hello guys, i have two table like blue area and green area.
Table1: ID1 and ID2 are primary key.
Table2: ID3 is primary key.
How to get result like yellow area.
June 11, 2020 at 6:39 am
SELECT ID2, SUM(Amount1), SUM(Amount2)
FROM (SELECT ID2, Amount AS Amount1, 0 AS Amount2
FROM Table1
UNION ALL
SELECT ID2, 0, Amount
FROM Table2) AS u
GROUP BY ID2
[font="Times New Roman"]Erland Sommarskog, SQL Server MVP, www.sommarskog.se[/font]
June 11, 2020 at 12:15 pm
drop table if exists dbo.test_T1;
go
create table dbo.test_T1(
ID1 varchar(8) not null,
ID2 varchar(8) not null,
Amount1 int not null);
go
alter table dbo.test_t1
add constraint
pk_T1 primary key clustered (ID1, ID2);
go
insert dbo.test_T1(ID1, ID2, Amount1) values
('A1', 'B1', 10),
('A1', 'B2', 20),
('A2', 'B1', 15);
drop table if exists dbo.test_T2;
go
create table dbo.test_T2(
ID3 varchar(8) constraint pk_T2 primary key not null,
ID2 varchar(8) not null,
Amount2 int not null,
ID1 varchar(8) not null);
go
insert dbo.test_T2(ID3, ID2, Amount2, ID1) values
('C1', 'B1', 5, 'A1'),
('C2', 'B1', 2, 'A1');
--select * from dbo.test_T1;
--select * from dbo.test_T2;
with t2_cte(ID1, ID2, Amount2) as (
select ID1, ID2, sum(amount2) from dbo.test_T2 group by ID1, ID2)
select
t1.ID2,
sum(t1.Amount1) Amount1,
sum(isnull(t2.Amount2, 0)) Amount2
from
dbo.test_T1 t1
left join
T2_cte t2 on t1.ID1=t2.ID1
and t1.ID2=t2.ID2
group by
t1.ID2;
Aus dem Paradies, das Cantor uns geschaffen, soll uns niemand vertreiben können
June 11, 2020 at 2:14 pm
SELECT t1.ID2, SUM(t1.Amount1) AS Amount1, ISNULL(MAX(t2.Amount2), 0) AS Amount2
FROM dbo.table1 t1
LEFT OUTER JOIN (
SELECT ID2, SUM(Amount2) AS Amount2
FROM dbo.table2
GROUP BY ID2
) AS t2 ON t2.ID2 = t1.ID2
GROUP BY t1.ID2
SQL DBA,SQL Server MVP(07, 08, 09) "It's a dog-eat-dog world, and I'm wearing Milk-Bone underwear." "Norm", on "Cheers". Also from "Cheers", from "Carla": "You need to know 3 things about Tortelli men: Tortelli men draw women like flies; Tortelli men treat women like flies; Tortelli men's brains are in their flies".
June 17, 2020 at 3:21 am
And when you get that answer, what is the next question?
Now, what have you tried in order to solve your problem?
June 17, 2020 at 6:44 am
So did you try our solutions? And more to the point, did you try to augment any of them to fit this slant of the problem?
[font="Times New Roman"]Erland Sommarskog, SQL Server MVP, www.sommarskog.se[/font]
Viewing 8 posts - 1 through 7 (of 7 total)
You must be logged in to reply to this topic. Login to reply
This website stores cookies on your computer.
These cookies are used to improve your website experience and provide more personalized services to you, both on this website and through other media.
To find out more about the cookies we use, see our Privacy Policy