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

Откуда:
Сообщений: 90
День добрый. Опять прошу помощи с составлением запроса.
Есть 3 таблицы (в принципе типы данных наверно понятны из названий полей):

1. операции
data, dt_acc, kt_acc, sum, desc

2. счета
acc, name, inn

3. диапазон
data1, data2, inn

Нужно выбрать из таблицы Операции все строки где Операции.data попадает в интервал между Диапазон.data1 и Диапазон.data2.
Т.е. надо искать Операции.dt_acc или Операции.kt_acc в таблице Счета, потом по найденному inn и Операции.data проверять попадает ли в диапазон? Как это сделать?
8 ноя 16, 18:44    [19871834]     Ответить | Цитировать Сообщить модератору
 Re: запрос из 3 таблиц  [new]
Akina
Member

Откуда: Зеленоград, Москва, Россия
Сообщений: 21101
Badhabit
Т.е. надо искать Операции.dt_acc или Операции.kt_acc в таблице Счета, потом по найденному inn и Операции.data проверять попадает ли в диапазон?
Когда будешь то делать на процедурном языке и с массивами - тогда да, так. А на SQL-сервере делают наоборот - сначала генерят все комбинации, потом выбрасывают неподходящие по условиям, и остаётся то, что нужно.
8 ноя 16, 19:10    [19871895]     Ответить | Цитировать Сообщить модератору
 Re: запрос из 3 таблиц  [new]
Badhabit
Member

Откуда:
Сообщений: 90
Akina
Badhabit
Т.е. надо искать Операции.dt_acc или Операции.kt_acc в таблице Счета, потом по найденному inn и Операции.data проверять попадает ли в диапазон?
Когда будешь то делать на процедурном языке и с массивами - тогда да, так. А на SQL-сервере делают наоборот - сначала генерят все комбинации, потом выбрасывают неподходящие по условиям, и остаётся то, что нужно.

Вот у меня и проблема, видимо думаю на процедурном языке и никак не перестроюсь.
А как сгенерить все варианты?))
8 ноя 16, 19:14    [19871903]     Ответить | Цитировать Сообщить модератору
 Re: запрос из 3 таблиц  [new]
Akina
Member

Откуда: Зеленоград, Москва, Россия
Сообщений: 21101
Badhabit
как сгенерить все варианты?
Написать правильный FROM. Декартом или с JOINами.
8 ноя 16, 19:15    [19871906]     Ответить | Цитировать Сообщить модератору
 Re: запрос из 3 таблиц  [new]
iljy
Member

Откуда:
Сообщений: 8711
Badhabit
А как сгенерить все варианты?))


select * from операции cross join счета cross join диапазон
8 ноя 16, 19:28    [19871941]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить