SQL连接3个表,将重复行添加到一起
我搞不清楚这件事 选择所有的人和他们的订单,重要的是你要显示他们的名字,身份证-产品名称和数量。如果一个人对同一物品下了两个订单,您只想显示一个订单,但将两个订单的金额相加 到目前为止,这就是我所拥有的,但我无法思考如何使多个订单仅显示为1,并将金额相加:SQL连接3个表,将重复行添加到一起,sql,tsql,join,create-table,Sql,Tsql,Join,Create Table,我搞不清楚这件事 选择所有的人和他们的订单,重要的是你要显示他们的名字,身份证-产品名称和数量。如果一个人对同一物品下了两个订单,您只想显示一个订单,但将两个订单的金额相加 到目前为止,这就是我所拥有的,但我无法思考如何使多个订单仅显示为1,并将金额相加: SELECT p.navn, p.id, v.varenavn, o.antal FROM Vare as v INNER JOIN Ordre as o ON v.vareid = o.v_id INNER JOIN Person a
SELECT p.navn, p.id, v.varenavn, o.antal
FROM Vare as v
INNER JOIN Ordre as o
ON v.vareid = o.v_id
INNER JOIN Person as p
ON o.p_id = p.id
以下是表格:
瓦雷:
秩序:
create table Ordre(
ordreid int identity(1,1) primary key,
dato date,
tid int,
antal int,
totalpris money,
betalingsfrist date,
rabatgruppe int,
v_id int foreign key references Vare(vareid) not null,
p_id int,
)
人:
create table Person(
id int identity(1,1) primary key,
navn nvarchar(30),
vejnavn nvarchar(50),
postnr varchar(10),
bynavn nvarchar(50),
tlf int,
kategori int,
)
你可以试试
按订单汇总所有antal和group
合计->分组依据。在您的示例查询中,哪些字段是订单、金额?@daniel.shih抱歉,应该包括这些。安塔尔是一家公司,我很荣幸:
create table Person(
id int identity(1,1) primary key,
navn nvarchar(30),
vejnavn nvarchar(50),
postnr varchar(10),
bynavn nvarchar(50),
tlf int,
kategori int,
)
SELECT p.navn, p.id, v.varenavn, SUM(o.antal)
FROM Vare as v
INNER JOIN Ordre as o
ON v.vareid = o.v_id
INNER JOIN Person as p
ON o.p_id = p.id
GROUP BY
p.navn, p.id, v.varenavn