如何从表中删除不需要的信息?
Posted
技术标签:
【中文标题】如何从表中删除不需要的信息?【英文标题】:How do I remove not needed information from table? 【发布时间】:2020-05-03 14:22:53 【问题描述】:我正在尝试为第 1 个月、第 2 个月和第 3 个月创建一个列,并将发票的总额放在该列中。我已经成功地做到了,但是下面有更多的列,每列都为零,也就是它向我显示了每张发票的列,但我只想获得在第 1,2 和 3 个月制作的发票并且不要不显示其余部分。我该怎么做?
我得到了什么:
invoice_id | total | firstMonth | secondMonth | thirdMonth |
1 33.4 0 0 33.4
2 3434.5 0 0 0 <=====
what I want:
invoice_id | total | firstMonth | secondMonth | thirdMonth |
1 33.4 0 0 33.4
【问题讨论】:
发票 ID 2 发生了什么变化? 【参考方案1】:请了解类型。单引号应该用于字符串和日期常量——而不是列标识符或数字。
那么,我想你只是想正确过滤结果:
SELECT i.id AS invoice_ID , i.total AS TOTAL,
(CASE WHEN month(i.datetime) = 1 THEN ABS(i.total) ELSE 0 END) AS firstMonth,
(CASE WHEN month(i.datetime) = 2 THEN ABS(i.total) ELSE 0 END) AS secondMonth,
(CASE WHEN month(i.datetime) = 3 THEN ABS(i.total) ELSE 0 END) AS thirdMonth
FROM invoice i JOIN
store s
ON i.store_id = s.id JOIN
company c
ON s.company_id = c.id
WHERE c.name = 'RubberDuck' AND
i.datetime >= '2019-01-01' AND
i.date_time < '2019-04-01'
【讨论】:
以上是关于如何从表中删除不需要的信息?的主要内容,如果未能解决你的问题,请参考以下文章
如何从表中提取信息以填充已创建数据仓库中的 CALENDAR 表