首页 > 解决方案 > SQL 行总问题

问题描述

我编写了一个 SQL 查询,它显示了 2019 年 12 月 1 日到 2019 年 12 月 31 日之间产品编号 20 已售出多少次,输出为

aantal:
2
1

但我希望我的输出是这样的:

aantal
3

而不是 SQL 显示所有内容,我希望它从产品编号 20 开始计算所有内容并显示 1 输出“3”而不是 1、2。

这是我的 SQL 查询:

SELECT aantal
FROM aankoop, transactie 
WHERE datum BETWEEN '2019-12-01' AND '2019-12-31'
  AND filiaalnummer = 35 
  AND product = 20

SQL 映像

my sql query tables:



CREATE TABLE Bonuskaart (bonuskaartnummer SERIAL NOT NULL, naam varchar(255), adres varchar(255), woonpaats varchar(255), PRIMARY KEY (bonuskaartnummer));
CREATE TABLE Transactie (transactienummer SERIAL NOT NULL, datum date NOT NULL, tijd time NOT NULL, bonuskaartnummer int4 NOT NULL, filiaalnummer int4 NOT NULL, PRIMARY KEY (transactienummer));
CREATE TABLE Aankoop (transactienummer int4 NOT NULL, product int4 NOT NULL, aantal int4 NOT NULL, PRIMARY KEY (transactienummer, product));
CREATE TABLE Filiaal (filiaalnummer SERIAL NOT NULL, plaats varchar(255) NOT NULL, adres varchar(255) NOT NULL, PRIMARY KEY (filiaalnummer));
CREATE TABLE Product (productnummer SERIAL NOT NULL, omschrijving varchar(255) NOT NULL, prijs numeric(6, 2) NOT NULL, PRIMARY KEY (productnummer));
ALTER TABLE Transactie ADD CONSTRAINT FKTransactie539737 FOREIGN KEY (bonuskaartnummer) REFERENCES Bonuskaart (bonuskaartnummer);
ALTER TABLE Transactie ADD CONSTRAINT FKTransactie8060 FOREIGN KEY (filiaalnummer) REFERENCES Filiaal (filiaalnummer);
ALTER TABLE Aankoop ADD CONSTRAINT FKAankoop632754 FOREIGN KEY (transactienummer) REFERENCES Transactie (transactienummer);
ALTER TABLE Aankoop ADD CONSTRAINT FKAankoop27756 FOREIGN KEY (product) REFERENCES Product (productnummer);

和我的 sql 查询


ALTER TABLE bonuskaart ALTER COLUMN naam SET DEFAULT '(anoniem)';
INSERT INTO bonuskaart VALUES(65472335);
INSERT INTO filiaal VALUES(35,'Utrecht','Stationsplein');
INSERT INTO filiaal VALUES(48,'Utrecht','Roelantdreef 41');
INSERT INTO product VALUES(20,'AH halfvolle melk',0.99);
INSERT INTO product VALUES(21,'AH pindakaas',2.39);
INSERT INTO product VALUES(22,'tandenborstel',1.35);

INSERT INTO transactie VALUES(456,'2019-12-01','17:35',65472335,35);
INSERT INTO aankoop VALUES(456,20,2);
INSERT INTO aankoop VALUES(456,21,1);
INSERT INTO aankoop VALUES(456,22,1);


INSERT INTO transactie VALUES(789,'2019-12-03','12:25',65472335,48);
INSERT INTO aankoop VALUES(789,20,1);

标签: sql

解决方案


使用sum()聚合函数

select sum(aantal) from Aankoop a join Transactie t on
   a.transactienummer=t.transactienummer
where product=20 and datum BETWEEN '2019-12-01' AND '2019-12-31'

推荐阅读