我想从另一个表中添加新列,现在我有查询:
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.Nazwa
和GRUPY.Nazwa
。