Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности

Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
17.09.2018, 11:20
|
|||
|---|---|---|---|
|
|||
Посчитать количество пропущенных строк |
|||
|
#18+
Доброго времени суток! Для отчета необходимо посчитать кол-во пропущенных строк, то есть строк, которые есть в первой выборке, а во второй нет Есть набор атрибутов "code1", "code2", "code3". Есть таблица с данными вида: date id_prod code_prod '20180701' 1 code1 '20180701' 1 code3 '20180401' 2 code1 '20180401' 2 code2 '20180401' 2 code3 '20180701' 3 code1 '20180701' 3 code2 '20180701' 3 code3 результат должен быть таким: в период '20180401' по '20180701' код число пропущенных значений code1 0 code2 1 code3 0 Делаю так: declare @date_start date, @date_end date select @date_start = '20180401' , @date_end = '20180701' ; with cte_s as ( select * from ( values ('code1'), ('code2'), ('code3') ) cte (code) ) select SUM(CASE WHEN t.code_prod is null THEN 1 ELSE 0 END) over(partition by code) as CountNull from cte s left join ( select date, id_prod, code_prod from dbo.FACT_FINDATA where date between @date_start and @date_end ) t on s.code = t.code_prod В результате все по нулям, почему не считается, что для code2 есть пропущенная строка? Что делаю не правильно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
17.09.2018, 11:54
|
|||
|---|---|---|---|
Посчитать количество пропущенных строк |
|||
|
#18+
SaraCorrorЧто делаю не правильно?Все. Вы не понимаете как работает внешнее соединение. Для понимания выполните ваш код на таких данных: Код: plaintext 1. 2. 3. 4. 5. Один из вариантов решения: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
17.09.2018, 12:15
|
|||
|---|---|---|---|
|
|||
Посчитать количество пропущенных строк |
|||
|
#18+
Спасибо за подробный ответ, все заработало. Сяду внимательнее изучать соединения ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
17.09.2018, 12:21
|
|||
|---|---|---|---|
Посчитать количество пропущенных строк |
|||
|
#18+
Вот еще Код: sql 1. 2. 3. 4. 5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=46&mobile=1&tid=1689103]: |
0ms |
get settings: |
8ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
63ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
26ms |
get tp. blocked users: |
1ms |
| others: | 246ms |
| total: | 371ms |

| 0 / 0 |
