|
Присоединить таблицу дат к таблице фактов
|
|||
---|---|---|---|
#18+
Добрый день коллеги, Пытаюсь сделать следующее Есть таблица - Календарь (состоит из 1 столбца дат 01.01.2021 и тд...) AS y Есть таблица фактов, структура (Дата | Склад | Товар | Качество | Остаток |) AS x Пытаюсь протянуть остатки, для этого мне надо для каждой записи где y.Дата = x.Дата взять значение из таблицы x, а где нет значения NULL Попробовал OUTER JOIN Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16.
Если ограничиваю запрос условием Код: sql 1.
В таком случае получаю нужную таблицу А если для товара много складов да и самих товаров много, то не получается В общем нужно присоединить календарь, к каждой группе (Склад, Товар, Качество) Никак не пойму, как это сделать ... |
|||
:
Нравится:
Не нравится:
|
|||
22.07.2021, 16:07 |
|
Присоединить таблицу дат к таблице фактов
|
|||
---|---|---|---|
#18+
Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17.
... |
|||
:
Нравится:
Не нравится:
|
|||
22.07.2021, 17:36 |
|
Присоединить таблицу дат к таблице фактов
|
|||
---|---|---|---|
#18+
a_voronin, Спасибо, но это совсем не так работает Ваш запрос вернул мне табл (скрин) Мне нужно чтобы для каждой пары (Склад, Товар, Качество) Были созданы даты т.е. на скришоте видно, что по складу 000000226 - Таблица начинается с даты 16.07.2021 А должны быть записи и для 17, 18, 19, числа c полями NULL Если я выполню свой запрос, отфильтровав WHERE a.Дата = b.Дата AND a.КодСклада = N'000000226' AND a.КодТовара = N'00000013997' Я получу нужный рез.тт А вот если уберу условие по складу, таблица формируется иначе ... |
|||
:
Нравится:
Не нравится:
|
|||
22.07.2021, 18:12 |
|
Присоединить таблицу дат к таблице фактов
|
|||
---|---|---|---|
#18+
Kellyjkee, Вы напишите для начала запрос, который выдает все (Склад, Товар, Качество), а потом с фактов на него RIGHT JOIN ... |
|||
:
Нравится:
Не нравится:
|
|||
22.07.2021, 18:24 |
|
Присоединить таблицу дат к таблице фактов
|
|||
---|---|---|---|
#18+
a_voronin, не совсем так. насколько я понимаю, требуется (select distinct Склад, Товар, Качество) cross join календарь left join Остатки в идеале, первое должно выбираться из соответствующих справочников, а не таблицы остатков. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.07.2021, 13:39 |
|
Присоединить таблицу дат к таблице фактов
|
|||
---|---|---|---|
#18+
Посетитель a_voronin, не совсем так. насколько я понимаю, требуется (select distinct Склад, Товар, Качество) cross join календарь left join Остатки в идеале, первое должно выбираться из соответствующих справочников, а не таблицы остатков. Это делает не так вы из справочников (не касаясь таблицы фактов) формируете все комбинации, а затем связываете это с таблицей фактов. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.07.2021, 11:33 |
|
Присоединить таблицу дат к таблице фактов
|
|||
---|---|---|---|
#18+
а потом следующая просьба выкинуть из этого набора тысячи левых товаров которые уже давно не продаются и никому не нужны. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.07.2021, 13:08 |
|
Присоединить таблицу дат к таблице фактов
|
|||
---|---|---|---|
#18+
Ivan Durak а потом следующая просьба выкинуть из этого набора тысячи левых товаров которые уже давно не продаются и никому не нужны. Это не относится к делу в рамках данной задачи. Вопрос стоит в том, чтобы получить все (Склад, Товар, Качество), которые нужны бизнесу, а потом соединять их с таблицей фактов. А что именно нужно бизнесу -- это Тс должен знать. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.07.2021, 13:18 |
|
Присоединить таблицу дат к таблице фактов
|
|||
---|---|---|---|
#18+
a_voronin, a_voronin вы из справочников (не касаясь таблицы фактов) формируете все комбинации, а затем связываете это с таблицей фактов. я об этом и писал в своем последнем предложении. что данные надо по возможности брать из справочников. проблема в том, что их может не быть, а их появление - это тоже уже другая задача ... |
|||
:
Нравится:
Не нравится:
|
|||
29.07.2021, 14:25 |
|
Присоединить таблицу дат к таблице фактов
|
|||
---|---|---|---|
#18+
Kellyjkee, Попробуй сделать временную таблицу-основу (Дата, Номер склада): Код: sql 1. 2. 3. 4. 5. 6. 7. 8.
Далее присоединяешь к этой таблице таблицу фактов: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9.
... |
|||
:
Нравится:
Не нравится:
|
|||
29.07.2021, 15:20 |
|
Присоединить таблицу дат к таблице фактов
|
|||
---|---|---|---|
#18+
Alex_Va, для товаров, которые в конкретную дату на конкретном складе отсутствовали ты своим запросом не получишь строку с нулевым остатком ... |
|||
:
Нравится:
Не нравится:
|
|||
29.07.2021, 15:32 |
|
|
start [/forum/topic.php?fid=46&fpage=18&tid=1684458]: |
0ms |
get settings: |
7ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
35ms |
get topic data: |
14ms |
get forum data: |
3ms |
get page messages: |
47ms |
get tp. blocked users: |
2ms |
others: | 251ms |
total: | 382ms |
0 / 0 |