我有两个带有联合的查询,我的问题是Codice的组文章然后添加了具有相同代码的项目的Quantità和Totale,问题如图所示(参见两行GW44001
)。
查询代码:
SELECT SottoCapitolo.Codice,SottoCapitolo.Descrizione,ISNULL(SottoCapitolo.UnitaMisura,'NR') as UM,SottoCapitolo.CostoUnitario,SottoCapitolo.Quantita,(SottoCapitolo.CostoUnitario*SottoCapitolo.Quantita) as Totale
FROM Fatture.dbo.SottoCapitolo
inner join Fatture.dbo.Capitolo
on Capitolo.IdCapitolo=SottoCapitolo.IdCapitolo
where SottoCapitolo.Tipo='Articolo'
UNION ALL
/*Selezione Articoli Dentro Distinte*/
Select Articolo.CodArt as Codice,Articolo.Descrizione,ISNULL(Articolo.UM,'NR'),Articolo.Prezzo,SottoCapitolo.Quantita*(DistintaSemplice.Quantita) as Quantita,cast(ROUND((Articolo.Prezzo*(SUM(DistintaSemplice.Quantita*SottoCapitolo.Quantita))),2) as numeric(12,2)) as Totale
from Fatture.dbo.Preventivo
inner join Fatture.dbo.Capitolo
on Capitolo.IdPreventivo=Preventivo.IdPreventivo
inner join Fatture.dbo.SottoCapitolo
on SottoCapitolo.IdCapitolo=Capitolo.IdCapitolo
inner join Fatture.dbo.Distinta
on SottoCapitolo.Codice=Distinta.IdDistinta
inner join Fatture.dbo.DistintaSemplice
on DistintaSemplice.IdDistinta=Distinta.IdDistinta
inner join Fatture.dbo.Articolo
on Articolo.IdArticolo=DistintaSemplice.IdArticolo
where SottoCapitolo.Tipo='Distinta'
group by Articolo.CodArt,Articolo.Descrizione,Articolo.UM,Articolo.Prezzo,SottoCapitolo.Quantita,DistintaSemplice.Quantita
输出:
这里的问题是GW44001的某些字段在这两个句子中是不同的,我们尝试修复它:
这个查询应该逐个字段比较,注意语法,也许我犯了一些错误。
组中有两个不同的 Quantita by
这个跟union没有关系
学会分解一个问题,格式化一个query,这样就可以debug了
/ Selezione Articoli /
或 Group by 应该适用于两者: