Генерирование большего количества строк на основе столбца, если критерии не соответствуют SQL - PullRequest
0 голосов
/ 20 сентября 2019

У меня есть следующая таблица, эта таблица содержит информацию о количестве файлов и некоторых других полях.Это справочная таблица или справочная таблица.

id             nm    expected_num_files     file_name_expr
1             CVS             3               cvs_d.*.zip
2             CVS             2               cvs_w.*.zip
3             Rite-aid        4               ra_d.*.gz
5             Walgreen        2               wal_d*.txt

У меня есть таблица аудита, в которой хранятся файлы с полученной информацией.Обе эти таблицы могут быть объединены с идентификатором

audit_id    id  file_nm
123          1  cvs_d1.zip
124          1  cvs_d2.zip
125          2  cvs_w1.gz
126          1  cvs_d3.zip

В идеальном случае, когда все файлы получены.

Идеальный результат выберите идентификатор, количество (*) из группы аудита по идентификатору

   id              count_files 
    1                 3           
    2                 2           
    3                 4           
    5                 2 

CurrentResult таблицы аудита Но в текущем случае яполучил только некоторые файлы

   id              count_files
    1                 3           
    2                 1  

Чтобы достичь идеального случая, мне нужно заполнить фиктивные записи в итоговой таблице из таблицы поиска пустым аудитом

Мне нужна итоговая таблица выводадолжно нравиться это.

Если я выполню запрос select id , count(*) from auditlog group by id
в финальной таблице, я получу идеальный результат, который выделен выше

audit_id  id  file_nm
    123      1  cvs_d1.zip
    124      1  cvs_d2.zip
    126      1  cvs_d3.zip
    -1       2  cvs_w.*.gz
    125      2  cvs_w1.gz
    -1       3  ra_d*.gz
    -1       3  ra_d.*.gz
    -1       3  ra_d.*.gz
    -1       3  ra_d.*.gz
    -1       5  wal_d*.txt
    -1       5  wal_d*.txt

Мы можем сгенерировать строки initailлегко, но строки с -1 генерируются на основе количества файлов, не полученных из столбца (количество файлов, которые они не отправили)

Объяснить итоговую таблицу: так как у нас есть 3 записи для идентификатора 1 в таблице аудитапоэтому мы заполнили их в финальной таблице, но для идентификатора 2 у нас есть одна запись в таблице аудита, которую мы заполнили, а для другой записи мы заполнили -1.

...