Гость
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Выбор записей со значением больше "нуля" / 11 сообщений из 11, страница 1 из 1
01.01.2019, 19:45
    #39755401
Hadroran
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выбор записей со значением больше "нуля"
Всех с Новым Годом! И меня с первым топиком.

Помогите, чтобы запрос выводил записи со значением суммы больше нуля. Однако при вставке
Код: plsql
1.
where V_ARRIVALSUM > 0

ругается на неизвестный столбец.
Сам запрос
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
SELECT
    CCNT.ID,
    CCNT.V_SHRTNAME as V_CSTM_NAME,
    CCNT.V_CONTACTNAME as V_CCNT_NAME,
    COALESCE(
    (select
       sum(V_ARRIVALSUM)
     from V_IORDOPERATION IOPR where
       IOPR.ID_CCNT = CCNT.ID and
       IOPR.ID_SPL = :ID and
       IOPR.V_SALEDATE BETWEEN '01.12.2018' AND '31.12.2018')
     , 0) as V_ARRIVALSUM

FROM V_CUSTCONTACT CCNT

where V_ARRIVALSUM > 0

ORDER BY V_ARRIVALSUM DESC
...
Рейтинг: 0 / 0
01.01.2019, 19:49
    #39755402
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выбор записей со значением больше "нуля"
RTFM HAVING.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
01.01.2019, 19:54
    #39755405
Hadroran
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выбор записей со значением больше "нуля"
Dimitry Sibiryakov,

Код: plsql
1.
2.
GROUP 1,2,3
HAVING V_ARRIVALSUM > 0


Все равно ругается на V_ARRIVALSUM
...
Рейтинг: 0 / 0
01.01.2019, 19:57
    #39755406
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выбор записей со значением больше "нуля"
Потому что надо именно RTFM, а не наобум тыкать. В HAVING не работают алиасы полей.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
01.01.2019, 19:59
    #39755407
Hadroran
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выбор записей со значением больше "нуля"
Dimitry Sibiryakov,

Что ж они тут то работают?
Код: html
1.
http://code.mu/sql/having.html
...
Рейтинг: 0 / 0
01.01.2019, 20:04
    #39755408
Hadroran
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выбор записей со значением больше "нуля"
Код: plsql
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.
27.
28.
SELECT
    CCNT.ID,
    CCNT.V_SHRTNAME as V_CSTM_NAME,
    CCNT.V_CONTACTNAME as V_CCNT_NAME,
    COALESCE(
    (select
                 sum(V_ARRIVALSUM)
              from V_IORDOPERATION IOPR where
                 IOPR.ID_CCNT = CCNT.ID and
                 IOPR.ID_SPL = :ID and
                 IOPR.V_SALEDATE BETWEEN '01.12.2018' AND '31.12.2018')
                 , 0) as V_ARRIVALSUM

FROM V_CUSTCONTACT CCNT

GROUP BY CCNT.ID,
         V_CSTM_NAME,
         V_CCNT_NAME
HAVING COALESCE(
    (select
                 sum(V_ARRIVALSUM)
              from V_IORDOPERATION IOPR where
                 IOPR.ID_CCNT = CCNT.ID and
                 IOPR.ID_SPL = :ID and
                 IOPR.V_SALEDATE BETWEEN '01.12.2018' AND '31.12.2018')
                 , 0) > 0

ORDER BY V_ARRIVALSUM DESC
...
Рейтинг: 0 / 0
01.01.2019, 20:06
    #39755409
m7m
m7m
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выбор записей со значением больше "нуля"
HadroranDimitry Sibiryakov,

Код: plsql
1.
2.
GROUP 1,2,3
HAVING V_ARRIVALSUM > 0



Все равно ругается на V_ARRIVALSUM


как-то вот так
Код: sql
1.
2.
3.
4.
5.
6.
7.
SELECT CCNT.ID, CCNT.V_SHRTNAME, CCNT.V_CONTACTNAME,sum(IOPR.V_ARRIVALSUM)
FROM V_CUSTCONTACT CCNT
  join V_IORDOPERATION IOPR on IOPR.ID_CCNT = CCNT.ID
 where ..............
group by ......
having .........
ORDER by........

...
Рейтинг: 0 / 0
01.01.2019, 21:15
    #39755417
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выбор записей со значением больше "нуля"
HadroranЧто ж они тут то работают?

Очевидно потому, что это TFM от другой СУБД.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
01.01.2019, 21:39
    #39755420
MikeDD
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выбор записей со значением больше "нуля"
Hadroran,
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
select * from (SELECT
    CCNT.ID,
    CCNT.V_SHRTNAME as V_CSTM_NAME,
    CCNT.V_CONTACTNAME as V_CCNT_NAME,
    COALESCE(
    (select
       sum(V_ARRIVALSUM)
     from V_IORDOPERATION IOPR where
       IOPR.ID_CCNT = CCNT.ID and
       IOPR.ID_SPL = :ID and
       IOPR.V_SALEDATE BETWEEN '01.12.2018' AND '31.12.2018')
     , 0) as V_ARRIVALSUM

FROM V_CUSTCONTACT CCNT) 

where V_ARRIVALSUM > 0

ORDER BY V_ARRIVALSUM DESC
...
Рейтинг: 0 / 0
01.01.2019, 22:31
    #39755424
Hadroran
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выбор записей со значением больше "нуля"
Ребята, долго выполняется запрос. Подскажите что можно сделать для его ускорения
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
План
PLAN JOIN (JOIN (IOPR IOPR NATURAL, JOIN (JOIN (JOIN (JOIN (IOPR IORD IORD INDEX (PK_ITEMSORDER), IOPR IORD ITM INDEX (PK_ITEMS)), SORT (JOIN (IOPR IORD ICLC ITM INDEX (PK_ITEMS), IOPR IORD ICLC IORD INDEX (FK_ITEMSORDER_2)))), IOPR IORD SPL INDEX (PK_SUPPLIERS)), IOPR IORD MNF INDEX (PK_MANUFACTURER))), IOPR ORD INDEX (PK_ORDERS))
PLAN SORT (JOIN (CCNT CTM NATURAL, CCNT CNT INDEX (FK_CUSTCONTACT_1)))

------ Информация о производительности ------
Время подготовки запроса = 0ms
Время выполнения запроса = 13s 110ms
Среднее время на получение одной записи = 595,91 ms
Current memory = 35 175 428
Max memory = 41 020 308
Memory buffers = 2 048
Reads from disk to cache = 0
Writes from cache to disk = 0
Чтений из кэша = 16 160 820
...
Рейтинг: 0 / 0
01.01.2019, 23:08
    #39755425
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выбор записей со значением больше "нуля"
Hadroranчто можно сделать для его ускорения

"Учиться, учиться и ещё раз учиться." (с)
http://www.ibase.ru/dataaccesspaths/
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Выбор записей со значением больше "нуля" / 11 сообщений из 11, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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