如何从表中删除不需要的信息?

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 表

Pyspark:如何从表中提取统计信息?

如果 Redshift 中存在表,则从表中删除行,否则忽略删除

如何从表中删除分区?

mysql如何删除数据库指定ID段的数据库?