Гость
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Создание запроса / 12 сообщений из 12, страница 1 из 1
09.07.2015, 15:09
    #39003561
Hadroran
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание запроса
Привет всем.
Есть две таблицы D_ORDER и D_ITEMSORDER.
Код: sql
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.
29.
CREATE OR ALTER VIEW VD_ORDER(
    ID_CODE,
    VD_NUMBER,
    VD_DATE,
    VD_TIME,
    VD_SUM,
    VD_DESC
   )
AS
SELECT 
       ORD.ID_CODE, 
       ORD.D_NUMBER, 
       ORD.D_DATE, 
       ORD.D_TIME, 
       SUM (D_OUTSUM) as IORD,
       ORD.D_DESC

FROM D_ORDER ORD, D_ITEMSORDER IORD

WHERE 
      IORD.ID_ORDER = ORD.ID_CODE

GROUP BY
       ORD.ID_CODE, 
       ORD.D_NUMBER, 
       ORD.D_DATE, 
       ORD.D_TIME,
       ORD.D_DESC
;


В таблице D_ORDER (заказ) есть 4 записи из которых только для одной в таблице D_ITEMSORDER существуют записи (товар).
При создании запроса осуществляется подсчет суммы всех товаров в заказе. Если в заказе товаров нет, то его нет и в результате этого запроса.
Прошу подсказать как преобразовать запрос, чтобы в остальных заказах не имеющих еще товар стояло значение "0"
...
Рейтинг: 0 / 0
09.07.2015, 15:21
    #39003582
Симонов Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание запроса
Hadroran,

LEFT JOIN + COALESCE
...
Рейтинг: 0 / 0
09.07.2015, 15:23
    #39003585
Мимопроходящий
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание запроса
Hello, Hadroran!
You wrote on 9 июля 2015 г. 15:23:24:

Hadroran> Прошу подсказать как преобразовать запрос
читай про LEFT JOIN
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
09.07.2015, 15:52
    #39003653
Hadroran
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание запроса
Все равно одна запись остается.
Как LEFT JOIN + COALESCE правильно включить в запрос?
...
Рейтинг: 0 / 0
09.07.2015, 15:57
    #39003661
Мимопроходящий
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание запроса
Hello, Hadroran!
You wrote on 9 июля 2015 г. 15:58:00:

Hadroran> Все равно одна запись остается.
показывай свой запрос.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
09.07.2015, 16:09
    #39003680
Hadroran
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание запроса
я его сделать не могу....что показывать...
...
Рейтинг: 0 / 0
09.07.2015, 16:16
    #39003693
Мимопроходящий
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание запроса
Hello, Hadroran!
You wrote on 9 июля 2015 г. 16:14:01:

Hadroran> я его сделать не могу....что показывать...
начни изучать SQL.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
09.07.2015, 16:16
    #39003694
Hadroran
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание запроса
Вот теперь можно и выложить и не постыдиться :)
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
SELECT ORD.ID_CODE, SUM(IORD.vd_outsum) as VD_S

FROM D_ORDER ORD

LEFT JOIN VD_ITEMSORDER IORD ON IORD.id_order = ORD.id_code

GROUP BY ORD.ID_CODE
;
...
Рейтинг: 0 / 0
09.07.2015, 16:39
    #39003724
Hadroran
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание запроса
Подскажите, почему ошибка выходит в запросе?
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
CREATE OR ALTER VIEW VD_ORDER(
    ID_CODE,
    ID_CUSTOMER,
    ID_CALLUSER,
    VD_CUSTOMER,
    VD_SUM
    )
AS
SELECT ORD.ID_CODE, ORD.ID_CUSTOMER, ORD.ID_CALLUSER,
       CCT.VD_NAME,
       COALESCE(SUM(IORD.vd_outsum),0) as IORD

FROM D_ORDER ORD, VD_CUSTCONTACT CCT

LEFT JOIN VD_ITEMSORDER IORD ON IORD.ID_ORDER = ORD.ID_CODE

WHERE CCT.ID_CODE   = ORD.ID_CUSTOMER

GROUP BY
    ORD.ID_CODE, ORD.ID_CUSTOMER, ORD.ID_CALLUSER,
    CCT.VD_NAME
;
...
Рейтинг: 0 / 0
09.07.2015, 16:41
    #39003727
Мимопроходящий
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание запроса
Hello, Hadroran!
You wrote on 9 июля 2015 г. 16:41:33:

Hadroran> Подскажите, почему ошибка выходит в запросе?какая?

Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
09.07.2015, 16:50
    #39003751
Hadroran
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание запроса
Мимопроходящий

Спасибо, что помог разобраться.

Код: sql
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.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
CREATE OR ALTER VIEW VD_ORDER(
    ID_CODE,
    ID_CUSTOMER,
    ID_CALLUSER,
    VD_CUSTOMER,
    VD_SHRTNAME,
    VD_CUSTNAME,
    VD_CALLUSER,
    VD_RECSTAT,
    VD_DELSTAT,
    VD_IMPORTANT,
    VD_LABEL,
    VD_NUMBER,
    VD_DATE,
    VD_TIME,
    VD_STATCURR,        /* Валюта заказа */
    VD_SUM,
    VD_DESC
    )
AS
SELECT ORD.ID_CODE, ORD.ID_CUSTOMER, ORD.ID_CALLUSER,
       CCT.VD_NAME, CCT.VD_SHRTNAME, CCT.VD_CONTACTNAME,
       USR.U_NAME,
       ORD.D_RECSTAT, ORD.D_DELSTAT, ORD.D_IMPORTANT, ORD.D_LABEL,
       ORD.D_NUMBER, ORD.D_DATE, ORD.D_TIME, ORD.D_STATCURR,
       COALESCE(SUM(IORD.vd_outsum),0),
       ORD.D_DESC

FROM D_ORDER ORD

LEFT JOIN VD_ITEMSORDER IORD ON IORD.ID_ORDER = ORD.ID_CODE
LEFT JOIN VD_CUSTCONTACT CCT ON CCT.ID_CODE   = ORD.ID_CUSTOMER
LEFT JOIN D_USER USR ON USR.ID_CODE   = ORD.ID_CALLUSER

GROUP BY
    ORD.ID_CODE, ORD.ID_CUSTOMER, ORD.ID_CALLUSER,
    CCT.VD_NAME, CCT.VD_SHRTNAME, CCT.VD_CONTACTNAME,
    USR.U_NAME,
    ORD.D_RECSTAT, ORD.D_DELSTAT, ORD.D_IMPORTANT, ORD.D_LABEL,
    ORD.D_NUMBER, ORD.D_DATE, ORD.D_TIME, ORD.D_STATCURR,
    ORD.D_DESC
;
...
Рейтинг: 0 / 0
09.07.2015, 16:54
    #39003757
Мимопроходящий
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание запроса
Hello, Hadroran!
You wrote on 9 июля 2015 г. 16:54:58:

Hadroran> Спасибо, что помог разобраться.
ты заходи, если что
(с)
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Создание запроса / 12 сообщений из 12, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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