Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
08.07.2016, 21:57
|
|||
---|---|---|---|
|
|||
SUM с условием |
|||
#18+
Однажды в решении одной моей проблемы здесь на форуме мне посоветовали в запросе строку типа: SELECT cod_gr, Sum(C*(V=1)*(D=#04/29/2016#)) AS Увед, Sum(C*(V=2)*(D=#04/29/2016#)) AS Предп... Весь запрос большой, копировать не буду. Как я понял в скобочках перечисляются условия суммы чрез звездочку??? По образу и подобию для того чтобы разобраться в этом я создал таблицу B C 1 1 1 2 2 1 3 1 6 2 7 2 8 2 Запрос приводит к тому что в результате выдает -1, хотя должен 22. SELECT Sum(B*C=2) AS [Sum-B] FROM Таблица1; Что я не правильно делаю и где можно почитать про это информацию? Спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
08.07.2016, 22:42
|
|||
---|---|---|---|
SUM с условием |
|||
#18+
Прочитать надо хотя бы в хелпе про старшинство операций. Первыми выполняются арифметические (у вас умножение *), затем сравнение (=), последними логические. Скобки меняют приоритет. Таким образом вы задали условие (B*C)=2, что и привело к результату -1. А надо было выделить скобками и поменять порядок. Кроме того надо поменять знак перед SUM, поскольку True в Jet равно -1 Код: sql 1. 2.
... |
|||
:
Нравится:
Не нравится:
|
|||
|
08.07.2016, 22:48
|
|||
---|---|---|---|
SUM с условием |
|||
#18+
DQuasar, А как умножить,предположу, что цифру С*V на TRUE ("выдаваемая"-1 в VBA и есть TRUE) Код: vbnet 1.
Читайте help A-97 для А-2007 и старше установите это ... |
|||
:
Нравится:
Не нравится:
|
|||
|
|
start [/forum/topic.php?fid=45&mobile=1&tid=1613381]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
39ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
43ms |
get tp. blocked users: |
1ms |
others: | 328ms |
total: | 451ms |
0 / 0 |