Если/иначе в запросе, с группировкой по функции

У меня есть эти данные:

+-----------+-----------+--------+-------------+--------+
|   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, если > от 01.01.1970, иначе Дата. Новая таблица должна быть сгруппирована по описанию, чтобы иметь общую сумму для каждого счета.

На данный момент это моя формула:

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

но я застрял, так как электронная таблица Google выдает ошибку, когда я смешиваю результат агрегирования SUM(Col5) с другими нормальными результатами.


person poisons    schedule 09.10.2017    source источник


Ответы (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

Что касается «если», Google Query не включает предложение if, поэтому вы можете применить IF с помощью функций электронных таблиц до или после применения функции QUERY.

person Rubén    schedule 09.10.2017
comment
Работает, спасибо, но как выбрать условно дату (Col2, если Col2›'01/01/1970, иначе Col1)? - person poisons; 09.10.2017