2016-03-08 32 views
0

我想從兩個或多個select語句水平顯示數據。 實施例:以兩個或多個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 

如果我使用聯盟,數據將垂直顯示,但我想要顯示的數據如下面的樣品。 TQ

DocNo |DocName |CompanyA Amount |CompanyB Amount |CompanyC Amount 
---------------------------------------------------------------------------- 
DN0001 AAA   22345    22312    22311 
DN0002 BBB   20000    22321    22456 

回答

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

+0

Tq。這是答案!爲什麼我不認爲這真的很簡單。我正在計劃尋找樞紐和booom!這裏只是簡單的加入。 – Dia

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