繁体   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