powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / SQLite [игнор отключен] [закрыт для гостей] / Проблема с HAVING SUM()
4 сообщений из 4, страница 1 из 1
Проблема с HAVING SUM()
    #37408975
wsxedc83
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Имеется запрос:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
SELECT
MainTable.Nomenk as Ref,
NOM.Name as Name,
NOM.ParentRef as ParentRef,
MainTable.Serial as Serial,
SER.SerNumber as SerNumber,
SUM ((- 1 + 2 *MainTable.Income)* Number)  as Number
FROM
MainTable
LEFT JOIN
   (SELECT
     Ref,
     ParentRef,
     Name
     FROM
     Nomenk) as NOM
     ON NOM.Ref=MainTable.Nomenk
LEFT JOIN
   (SELECT
     Key,
     SerNumber
     FROM
     Serials) as SER
     ON SER.Key=MainTable.Serial
     GROUP BY Ref,SerNumber
     HAVING SUM (Number) <> 0 
     ;

Income - флаг для обозначения типа операции - приход или расход
Цель - чтобы в выдаваемом результате были только ненулевые значения, т.е. если в MainTable есть две строки, которые отличаются друг от друга только значением Income (булево), то в итоговой таблице их быть не должно.
Пробовал убирать/ставить SUM в SELECT, пробовал менять условие вместо (-1+2*MainTable.Income)* Number использовал CASE - ну ничего не меняется. В итоговой таблице для тех записей которые были списаны - стоят нули.
...
Рейтинг: 0 / 0
Проблема с HAVING SUM()
    #37410814
wsxedc83
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Обошел проблему подзапросом, т.е.
Код: plaintext
SELECT * FROM (/*всё вышеперечисленное*/) as Q WHERE Q.Number <>  0 
Но... "как-то не аккуратненько"...
...
Рейтинг: 0 / 0
Проблема с HAVING SUM()
    #37414803
wsxedc83
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Пробовал поменять тип поля Income на integer куда занес нули и единицы (соответственно бывшим значениям ложь и истина). Проблема с HAVING SUM осталась.
...
Рейтинг: 0 / 0
Проблема с HAVING SUM()
    #37415048
Stupid_BOT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wsxedc83,
алиас совпадает с именем поля.
Код: plaintext
1.
2.
3.
4.
5.
6.
SELECT
...
SUM ((- 1 + 2 *MainTable.Income)* Number)  as Number
...
HAVING SUM (Number)<> 0 

Попробуйте поменять условие:
Код: plaintext
HAVING SUM ((- 1 + 2 *MainTable.Income)* MainTable.Number)<> 0 
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / SQLite [игнор отключен] [закрыт для гостей] / Проблема с HAVING SUM()
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]