簡體   English   中英

如何獲得聯接中相同行的總和

[英]How do I get sum of identical rows in a join

我的SQL代碼有問題,我使用了來自不同表的多個聯接,並且我的代碼如下所示:

SELECT Person.navn, Vare.varenavn, Ordre.antal FROM Ordre
JOIN Person
ON Person.Id = Ordre.P_id
JOIN Vare
ON Vare.Id = Ordre.vareid

我的問題是結果是這樣的

在此處輸入圖片說明

我希望它刪除重復項並將數字添加到“ antal”列中,因此應該是:“ Tulle-Banan-9”

謝謝!

編輯:

我將數據類型從文本更改為nvchar和varchar。 我使用了@ lad2025的最佳答案。

看起來您需要分組和SUM聚合功能:

SELECT Person.navn, Vare.varenavn, SUM(Ordre.antal) AS antal
FROM Ordre
JOIN Person
  ON Person.Id = Ordre.P_id
JOIN Vare
  ON Vare.Id = Ordre.vareid
GROUP BY Person.navn, Vare.varenavn;

編輯:

不要使用過時的類型text/ntext/image ,現在您可以使用CAST但是您應該考慮更改列數據類型:

SELECT CAST(Person.navn AS NVARCHAR(MAX)),
       CAST(Vare.varenavn AS NVARCHAR(MAX)),
       SUM(Ordre.antal) AS antal
FROM Ordre
JOIN Person
  ON Person.Id = Ordre.P_id
JOIN Vare
  ON Vare.Id = Ordre.vareid
GROUP BY CAST(Person.navn AS NVARCHAR(MAX)), CAST(Vare.varenavn AS NVARCHAR(MAX));

ntext, text, and image

在將來的Microsoft SQL Server版本中,將刪除ntext,text和image數據類型。 避免在新的開發工作中使用這些數據類型,並計划修改當前使用它們的應用程序。 請改用nvarchar(max),varchar(max)和varbinary(max)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM