我想从两个或多个select语句中水平显示数据。 示例:
Select DocNo, DocName, Sum(Amount)
From tblCompanyA
Group By DocNo, DocName
Select DocNo, DocName, Sum(Amount)
From tblCompanyB
Group By DocNo, DocName
Select DocNo, DocName, Sum(Amount)
From tblCompanyC
Group By DocNo, DocName
如果我使用Union,数据将垂直显示,但我希望数据显示如下。 TQ
DocNo |DocName |CompanyA Amount |CompanyB Amount |CompanyC Amount
----------------------------------------------------------------------------
DN0001 AAA 22345 22312 22311
DN0002 BBB 20000 22321 22456
答案 0 :(得分:0)
听起来你想要join
表而不是union
。
Select
A.DocNo, A.DocName,
Sum(A.Amount) [CompanyA Amount],
Sum(B.Amount) [CompanyB Amount],
Sum(C.Amount) [CompanyC Amount]
From tblCompanyA A
Join tblCompanyB B on B.DocNo=A.DocNo
Join tblCompanyC C on C.DocNo=A.DocNo
Group By A.DocNo, A.DocName
我假设所有表都有完全相同的DocNo
值集合的行,因此我使用了join
,这意味着inner join
。
答案 1 :(得分:0)
您可以将这些表连接在一起。其中一种方法是使用LEFT JOIN
select T1.DocNo as DocNo, T1.DocName as DocName,
sum(T1.Amount) as 'CompanyA Amount'
sum(T2.Amount) as 'CompanyB Amount'
sum(T3.Amount) as 'CompanyC Amount'
from tblCompanyA T1
left join tblCompanyB T2 on T1.DocNo = T2.DocNo
left join tblCompanyC T3 on T1.DocNo = T3.DocNo
Group by T1.DocNo, T1.DocName