Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 SELECT из определенных таблиц в зависимости от условия  [new]
Александр Сипачёв
Member

Откуда:
Сообщений: 22
Доброго времени!

Дорогие друзья, подскажите пожалуйста, как решить следующую задачу:

Имеются в базе таблицы с информацией о продажах по дням: один день - одна таблица. Каждая таблица имеет название sale_yyyy_mm_dd, где: yyyy - год, mm-месяц, dd-число (например sale_2014_10_15). Таблицы имеют следующую структуру: id, product_id, vendor_id, sale_type, sale_time. Но не на все дни года есть отдельная таблица, например есть такеи даты - на которых продаж нет.
Мне необходимо построить запрос о продажах, например с 1 марта по 17 апреля с определенным условием, например vendor_id=10
Есть еще таблица sales в которой есть всего одно поле (sales) с именами существующих таблиц с продажами.

В данный момент я выхожу из ситуации следующим запросом:
SELECT * from sale_2014_03_01
where vendor_id=10
union all
SELECT * from sale_2014_03_02
where vendor_id=10
union all
SELECT * from sale_2014_03_02
where vendor_id=10

Но такой запрос можно делать на 1 или 2 дня? а когда это целых 3 месяца? как быть?
Может быть есть какой-нибудь запрос, в который можно вставить какие-нибудь знаки % вместо чисел или еще что-нибудь?
SELECT * from sale_2014_03_01 to sale_2014_04_17 :)
или выбирать наименования таблиц из таблицы sales
SELECT * from sales
WHERE sales between 2014-03-01 and 2014-04-17
а потом полученный результат как-то подставлять в другой запрос на место таблиц
Подскажите пожалуйста решение
15 окт 14, 21:15    [16710254]     Ответить | Цитировать Сообщить модератору
 Re: SELECT из определенных таблиц в зависимости от условия  [new]
SERG1257
Member

Откуда:
Сообщений: 2748
Александр Сипачёв
а когда это целых 3 месяца? как быть?
Вьюхи сделают все за вас. Если вы наложите check ограничения на таблицы check sales = '2014-03-01' то лишние таблицы будут отброшены и вы не потеряете на производительности.
Александр Сипачёв
а потом полученный результат как-то подставлять в другой запрос на место таблиц
Подскажите пожалуйста решение

https://www.sql.ru/faq/faq_topic.aspx?fid=104
15 окт 14, 21:25    [16710306]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить