我的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"中添加数字。专栏应该是:"图勒 - 巴南 - 9"
谢谢!
修改
我将我的数据类型从text更改为nvchar和varchar。我使用了@ lad2025的最佳答案。
答案 0 :(得分:2)
看起来您需要分组和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
强>:
将来的版本中将删除ntext,text和image 数据类型 Microsoft SQL Server。避免在新的中使用这些数据类型 开发工作,并计划修改当前使用的应用程序 他们。请改用nvarchar(max),varchar(max)和varbinary(max)。