SQL Join 3表,将重复的行添加到一起

时间:2018-02-15 08:22:03

标签: sql tsql join create-table

我在解决这个问题时遇到了一些麻烦。

  

"选择所有人及其订单,显示他们的名字,ID(产品名称和金额)非常重要。如果一个人使用相同的商品订购了2个订单,您只想显示1个订单,而是将两个订单的金额加在一起。"

这是我到目前为止所做的,但我无法理解如何将多个订单显示为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 Vare(
    vareid int identity(1,1) primary key,
    nummer int,
    varenavn nvarchar(100),
    højde int,
    vægt int,
    pris money,
    dato nvarchar(20),
    datotil nvarchar(20),
)

勋章:

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,
)

1 个答案:

答案 0 :(得分:1)

你可以试试。

sum所有antal和group by命令。

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