【发布时间】:2020-03-21 10:19:55
【问题描述】:
我有 3 个不同的表格,用于跟踪售出的钢笔、铅笔和墨水的数量。
**pens table:**
date who_bought
12.03.2020 a
12.03.2020 d
13.03.2020 b
14.03.2020 c
**pencils table:**
date who_bought
12.03.2020 z
16.03.2020 r
17.03.2020 j
17.03.2020 k
**ink table:**
date who_bought
11.03.2020 h
11.03.2020 j
13.03.2020 z
17.03.2020 r
我想汇总数据并获取每天售出的钢笔、墨水和铅笔的数量。 “who_bought”列不相关(我的意思是值)。我只想计算每天的记录数。最后,我想按日期排序。 在上述情况下,我想得到类似的结果
11.03.2020 pens:0 pencils:0 ink: 2
12.03.2020 pens:2 pencils:1 ink: 0
13.03.2020 pens:1 pencils:0 ink:1
14.03.2020 pens:0 pencils:0 ink:0
16.03.2020 pens:0 pencils:1 ink:0
17.03.2020 pens:0 pencils:2 ink:1
如何做到这一点? 我试过这样的东西,但它不起作用:
select
COUNT(pens.*) as pens,
COUNT(pencils.*) as pencils,
COUNT(ink.*) as ink,
DATE(date) as date
from
pens
full join pencils on pencils.date=pens.date
full join ink on ink.date=pens.date
group by
date
order by
date asc
【问题讨论】:
-
“但它不起作用”不是一个充分的问题描述。请解释如何它不起作用。您是否从 DBMS 收到错误消息?你会得到意想不到的结果吗?
-
这似乎是一个有缺陷的设计。你没有“走在正确的轨道上”
标签: mysql sql join group-by pivot