SQL连接3个表,将重复行添加到一起

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

我搞不清楚这件事

选择所有的人和他们的订单,重要的是你要显示他们的名字,身份证-产品名称和数量。如果一个人对同一物品下了两个订单,您只想显示一个订单,但将两个订单的金额相加

到目前为止,这就是我所拥有的,但我无法思考如何使多个订单仅显示为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 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