|
|
|
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, 21:57:03 |
|
||
|
SUM с условием
|
|||
|---|---|---|---|
|
#18+
Прочитать надо хотя бы в хелпе про старшинство операций. Первыми выполняются арифметические (у вас умножение *), затем сравнение (=), последними логические. Скобки меняют приоритет. Таким образом вы задали условие (B*C)=2, что и привело к результату -1. А надо было выделить скобками и поменять порядок. Кроме того надо поменять знак перед SUM, поскольку True в Jet равно -1 Код: sql 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.07.2016, 22:42:41 |
|
||
|
SUM с условием
|
|||
|---|---|---|---|
|
#18+
DQuasar, А как умножить,предположу, что цифру С*V на TRUE ("выдаваемая"-1 в VBA и есть TRUE) Код: vbnet 1. Читайте help A-97 для А-2007 и старше установите это ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.07.2016, 22:48:16 |
|
||
|
|

start [/forum/topic.php?fid=45&tid=1613381]: |
0ms |
get settings: |
5ms |
get forum list: |
9ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
32ms |
get topic data: |
6ms |
get forum data: |
2ms |
get page messages: |
22ms |
get tp. blocked users: |
1ms |
| others: | 178ms |
| total: | 259ms |

| 0 / 0 |
