与 PIVOT 的两个连接



我想从另一个表中添加新列,现在我有查询:

SELECT
Id    
,Symbol
,Nazwa
,isnull([100000],0) AS [Magazyn 1]
,isnull([100005],0) AS [Magazyn 2]
,isnull([100006],0) AS [Magazyn 3]
,isnull([100000],0)+isnull([100005],0)+isnull([100006],0) Razem
FROM (
SELECT
ASO.id
,ASO.Symbol
,ASO.Nazwa
,STANY.IloscDostepna
,STANY.Magazyn_ID
FROM
ModelDanychContainer.Asortymenty ASO
LEFT JOIN ModelDanychContainer.StanyMagazynowe STANY ON STANY.Asortyment_ID 
= ASO.ID) AS sc
PIVOT
(
SUM(IloscDostepna) FOR Magazyn_ID IN ([100000],[100005],[100006])
) AS pv

我想从表中添加列:

JOIN ModelDanychContainer.GrupyAsortymentu GRUPY ON GRUPY.ID = ASO.GRUPA_ID

当我尝试像下面这样执行此操作时,我收到错误:

4104 多部分标识符 GRUPY。纳兹瓦不能被约束

8156 NAZWA 列被多次指定為「sc」

8156 NAZWA 列被多次指定为"pv">

SELECT
Id    
,Symbol
,GRUPY.Nazwa
,Nazwa
,isnull([100000],0) AS [Magazyn 1]
,isnull([100005],0) AS [Magazyn 2]
,isnull([100006],0) AS [Magazyn 3]
,isnull([100000],0)+isnull([100005],0)+isnull([100006],0) Razem
FROM (
SELECT
ASO.id
,ASO.Symbol
,ASO.Nazwa
,GRUPY.Nazwa
,STANY.IloscDostepna
,STANY.Magazyn_ID
FROM
ModelDanychContainer.Asortymenty ASO
LEFT JOIN ModelDanychContainer.StanyMagazynowe STANY ON STANY.Asortyment_ID 
= ASO.ID
JOIN ModelDanychContainer.GrupyAsortymentu GRUPY ON GRUPY.ID = ASO.GRUPA_ID) 
AS sc
PIVOT
(
SUM(IloscDostepna) FOR Magazyn_ID IN ([100000],[100005],[100006])
) AS pv

试试这个:

SELECT
Id    
,Symbol
,GroupyNazwa
,AsoNazwa
,isnull([100000],0) AS [Magazyn 1]
,isnull([100005],0) AS [Magazyn 2]
,isnull([100006],0) AS [Magazyn 3]
,isnull([100000],0)+isnull([100005],0)+isnull([100006],0) Razem
FROM (
SELECT
ASO.id
,ASO.Symbol
,ASO.Nazwa AS AsoNazwa
,GRUPY.Nazwa AS GroupyNazwa
,STANY.IloscDostepna
,STANY.Magazyn_ID
FROM
ModelDanychContainer.Asortymenty ASO
LEFT JOIN ModelDanychContainer.StanyMagazynowe STANY ON STANY.Asortyment_ID = ASO.ID
JOIN ModelDanychContainer.GrupyAsortymentu GRUPY ON GRUPY.ID = ASO.GRUPA_ID
) 
AS sc
PIVOT
(
SUM(IloscDostepna) FOR Magazyn_ID IN ([100000],[100005],[100006])
) AS pv

问题是子查询有 2 列具有相同的别名"Nazwa",分别是ASO.NazwaGRUPY.Nazwa

最新更新