Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Как заставить запрос вернуть ноль для набора данных, которых нет?
|
|||
|---|---|---|---|
|
#18+
Уважаемые коллеги! Код примерно такой: SELECT NumberID, SUM(Summ) FROM PaymentsList L INNER JOIN Payments P ON P.PaymentID=L.PaymentID INNER JOIN MagazinsList M ON M.ReclamID=L.ReclamID WHERE L.ReclamID IN (SELECT ReclamID FROM Reclam WHERE RubricID IN (SELECT RubricID From Rubriks WHERE ColorIns=1)) AND M.NumberID BETWEEN (1) AND (44) GROUP BY NumberID код этот служит для возвращения набора данных, на основании которых строится график. Но в том случае, когда есть только один NumberID, удовлетворяющий условиям и он возвращает только одну сумму, график строиться не будет. Как можно построить запрос так, чтобы он вернул все существующие номера, и нулевую сумму для тех, которые условию не отвечают? Типа вместо ---------- 36 | 8400 вернул ---------- 1 | 0 2 | 0 3 | 0 ... 36 | 8400 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2001, 14:18 |
|
||
|
Как заставить запрос вернуть ноль для набора данных, которых нет?
|
|||
|---|---|---|---|
|
#18+
Сформулировать ещё один запрос, в котором отсутствующие значения выявить через NOT EXISTS, и объединить при помощи UNION ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2001, 14:41 |
|
||
|
Как заставить запрос вернуть ноль для набора данных, которых нет?
|
|||
|---|---|---|---|
|
#18+
SELECT NumberID, SUM(ISNULL(Summ,0)) FROM PaymentsList L (LEFT JOIN Payments P ON P.PaymentID=L.PaymentID) LEFT JOIN MagazinsList M ON M.ReclamID=L.ReclamID WHERE L.ReclamID IN (SELECT ReclamID FROM Reclam WHERE RubricID IN (SELECT RubricID From Rubriks WHERE ColorIns=1)) AND M.NumberID BETWEEN (1) AND (44) GROUP BY NumberID ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2001, 15:01 |
|
||
|
Как заставить запрос вернуть ноль для набора данных, которых нет?
|
|||
|---|---|---|---|
|
#18+
Сорри, но первый вариант все равно один результат возвращает, а второй ругается на то, что нельзя делать агрегат из агрегата или квери... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2001, 15:50 |
|
||
|
Как заставить запрос вернуть ноль для набора данных, которых нет?
|
|||
|---|---|---|---|
|
#18+
Покажи первый ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2001, 15:56 |
|
||
|
Как заставить запрос вернуть ноль для набора данных, которых нет?
|
|||
|---|---|---|---|
|
#18+
Вот так он чего возвращает? SELECT NumberID, 0 FROM PaymentsList L INNER JOIN Payments P ON P.PaymentID=L.PaymentID INNER JOIN MagazinsList M ON M.ReclamID=L.ReclamID WHERE L.ReclamID NOT IN (SELECT ReclamID FROM Reclam WHERE RubricID IN (SELECT RubricID From Rubriks WHERE ColorIns=1)) AND M.NumberID BETWEEN (1) AND (44) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2001, 16:06 |
|
||
|
|

start [/forum/topic.php?fid=46&msg=32017707&tid=1824859]: |
0ms |
get settings: |
5ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
53ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
53ms |
get tp. blocked users: |
1ms |
| others: | 215ms |
| total: | 363ms |

| 0 / 0 |
