【问题标题】:SQL Join 3 tables, add together duplicate rowsSQL Join 3表,将重复的行加在一起
【发布时间】:2018-07-25 22:40:48
【问题描述】:

我在弄清楚这一点时遇到了一些麻烦。

“选择所有人和他们的订单,重要的是你显示他们的名字,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,
)

【问题讨论】:

  • “加起来”-> GROUP BY.
  • 您的示例查询中哪些字段是 order 、 amount ?
  • @daniel.shih 对不起,应该包括那个。 “antal”是数量。

标签: sql tsql join create-table


【解决方案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

【讨论】:

  • 这是我的荣幸 :)
猜你喜欢
  • 1970-01-01
  • 2016-10-14
  • 1970-01-01
  • 2011-12-30
  • 2015-04-19
  • 1970-01-01
  • 2019-06-14
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多