sql - 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
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);
解决方案
使用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'
推荐阅读
- amazon-web-services - AWS REDSHIFT:错误中间结果行超出数据库块大小
- android - 'com.android.support:appcompat-v7:28.0.0-rc02' 中的错误和应用程序崩溃
- wordpress - 使用 Angular 管道过滤 WordPress API?
- amazon-web-services - 变更数据捕获 (CDC) - AWS 上的渐变维度 (SCD2)
- javascript - html 标记字面上显示在浏览器中
- python - 在 matplotlib 中绘制多个图时出现索引错误
- php - 如何制作通用函数以将嵌套对象减少为 CSV 样式数组?
- c++ - 在类设计中查找外部命名空间中的重载运算符
- javascript - 编写 1 个 JavaScript 语句,该语句将从文本框中获取文本,并在单击按钮时使用它来设置段落的边框
- multiple-monitors - 我想在 2 台显示器上播放视频 uipath