首页 > 解决方案 > 如何在 MSSQL 查询中为具有 INNER JOIN 的一列求和()适当的行?

问题描述

我有一个 MSSQL 查询:

SELECT        Artikel.ArtikelID, Artikel.K_HerstellerName AS ManufacturerName, Artikel.K_HerstellerPN AS ManufacturerPN, Artikel.ArtikelNummer AS SupplierPN, Artikel.Bezeichnung + ' - ' + Artikel.LangText AS Description, 
                         Artikel.LetzterEK AS Price, Artikel.IstGesperrt AS Gesperrt, Lager.Verfuegbar AS Quantity, Lager.LagerPlatz AS LP
FROM            Artikel INNER JOIN
                         Lager ON Artikel.ArtikelID = Lager.ArtikelID
WHERE        (Artikel.K_HerstellerPN <> '') AND (Artikel.IstGesperrt = 'False') AND (Artikel.ArtikelNummer LIKE '%[0-9]-[0-9]%')

在这里你可以看到它的样子: https ://ibb.co/fyOHv9

如何在 MSSQL 查询中为“数量”列求和()适当的行?

结果所有行都必须是唯一的。

标签: sql-server

解决方案


您需要按使每一行唯一的所有列进行分组,然后在您的选择中使用聚合函数,例如:

SELECT  

MIN(Artikel.ArtikelID ) ArtikelID,

MIN(Artikel.K_HerstellerName) ManufacturerName, 

SUM(Lager.Verfuegbar) Quantity

FROM Artikel 
INNER JOIN  Lager ON Artikel.ArtikelID = Lager.ArtikelID
WHERE (Artikel.K_HerstellerPN <> '') ...

GROUP BY
Artikel.ArtikelID, 

Artikel.K_HerstellerName, 

...


推荐阅读