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

Откуда:
Сообщений: 388
Добрый день!

Есть таблица с товарами, у каждого товара своя цена.

Есть предопределённые ценовые диапазоны:
0-100
100-200
200-300
300-400
400-500
500-1000
1000-2000
2000-3000
3000-4000
4000-5000
5000-10000
10000-20000
20000-30000
30000-40000
40000-50000
50000-100000
100000-200000
200000-300000
300000-400000
400000-500000
500000-1000000
1000000-2000000
2000000-3000000
3000000-4000000
4000000-5000000
5000000-10000000
10000000-20000000
20000000-30000000
30000000-40000000
40000000-50000000
50000000-100000000
100000000-Бесконечность

Задача:

Нужно выбрать из таблицы товаров информацию и сформировать 2 таблицы:

1 таблица должна содержать информацию о ценовых диапазонах и количестве товаров в каждом из них, при этом должны отсекаться ценовые диапазоны в которые не входит ни один товар, таблица должна содержать следующие столбцы:

Минимальный порог ценового диапазона, Максимальный порог ценового диапазона, количество товаров входящих в него.

2 таблица должна содержать идентификаторы товаров в ценовом диапазоне, таблица должна содержать следующие столбцы:

ID товара, Минимальный порог ценового диапазона к которому товар принадлежит, Максимальный порог ценового диапазона к которому товар принадлежит



Вроде бы всё ясно, нужно сделать несколько SELECT запросов и получить результат по каждому из ценовых диапазонов во временную таблицу, потом посчитать по каждому диапазону количество товаров и сформировать 1 таблицу, но проблема в том, что ценовые диапазоны могут меняться и передаваться в процедуру например в виде строки "0-100,101-200,201-1450", тоесть процедура должна быть универсальной. В случае необходимости внешнее приложение может формировать эту строку в любом формате.

Я вижу это через создание внутри процедуры динамического SQL, собираемого циклом.

Вопрос:
Есть ли типовой пример решения такой задачи без создания динамического SQL? Что посоветуете?
28 авг 09, 12:04    [7589990]     Ответить | Цитировать Сообщить модератору
 Re: выборка ценовых диапазонов  [new]
Glory
Member

Откуда:
Сообщений: 104760
А тут разве не простой INNER JOIN между таблицами ?
28 авг 09, 12:07    [7590013]     Ответить | Цитировать Сообщить модератору
 Re: выборка ценовых диапазонов  [new]
iap
Member

Откуда: Москва
Сообщений: 46975
JOIN+COUNT(*)+GROUP BY
??
28 авг 09, 12:08    [7590022]     Ответить | Цитировать Сообщить модератору
 Re: выборка ценовых диапазонов  [new]
Алексей2003
Member

Откуда: Москва
Сообщений: 5645
посоветую разбирать строки, которые подаются на вход на таблицу с 2мя колонками. минимальный диапазон, максимальный диапазон. а потом формируйте простой джоин.

для спящего время бодрствования равносильно сну
28 авг 09, 12:09    [7590030]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить