如果在查询中是/ Else,则按功能分组

时间:2017-10-09 01:13:32

标签: google-sheets google-query-language

我有这些数据:

+-----------+-----------+--------+-------------+--------+
|   Date    |  Data NP  |  Type  |    Desc     | Amount |
+-----------+-----------+--------+-------------+--------+
| 10/1/2017 | 1/1/1970  | Income | invoice 812 | 600000 |
| 10/1/2017 | 1/1/1970  | Income | invoice 813 |  60000 |
| 10/1/2017 | 1/1/1970  | Income | invoice 813 |  50000 |
| 10/1/2017 | 1/1/1970  | Income | invoice 813 |  20000 |
| 10/1/2017 | 1/1/1970  | Income | invoice 815 |  23000 |
| 10/1/2017 | 1/1/1970  | Income | invoice 815 |  28000 |
| 10/1/2017 | 10/6/2017 | Income | invoice 816 |  70000 |
| 10/1/2017 | 10/6/2017 | Income | invoice 816 |  50000 |
| 10/1/2017 | 1/1/1970  | Income | invoice 817 | 140000 |
+-----------+-----------+--------+-------------+--------+

我想获得一个新表,其中只有一个日期,填充日期NP 如果> 1970年1月1日,否则日期。新表必须按描述进行分组,以便获得每张发票的总金额。

目前这是我的公式:

SELECT Col1, Col3, Col4, SUM(Col5) WHERE Col5>0 AND Col1>= date '"&text($A$1,"yyyy-mm-dd")&"' GROUP BY Col4

但是因为我将汇总结果 SUM(Col5)与其他正常结果混合在一起而导致Google电子表格出错,我感到困惑。

1 个答案:

答案 0 :(得分:1)

要解决该错误,您应该包括GROUP BY子句中未汇总的所有列:

尝试

SELECT Col1, Col3, Col4, SUM(Col5) WHERE Col5>0 AND Col1>= date '"&text($A$1,"yyyy-mm-dd")&"' GROUP BY Col1, Col3, Col4

关于" if",Google查询不包含if子句,因此您可以在应用QUERY函数之前或之后使用电子表格函数应用IF。