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

Откуда:
Сообщений: 82
Есть детали с индексами a, b , …
Детали входят в подгруппы (11111, ......) и в сборки (1 или 2)

Переводим деталь a в подгруппу 22222 ( во всех сборках)
Стоимость считаем по подгруппам.
Если стоимость подгруппы в какой-либо сборке после изменения подгруппы
у детали превысит 70 - выводим индекс детали (a,b,c ...) , подгруппу и сборку

И так для каждой подгруппы и для каждой детали (т.е.
сначала деталь a перемещаем по очереди во все подгруппы,
потом деталь b перемещаем по очереди во все подгруппы и т.д.)


declare @t table (ind varchar(2),podGr int,sborka int, Cost numeric(18,2))
insert @t

select 'a',11111, 1, 10 union all
select 'b',22222, 1, 20 union all
select 'c',33333, 1, 10 union all
select 'd',88888, 1, 40 union all
select 'e',22222, 1, 30 union all
select 'r',22222, 1, 10 union all

select 'a',11111, 2, 20 union all
select 'e',22222, 2, 30 union all
select 'c',33333, 2, 20 union all
select 'd',88888, 2, 40 union all
select 'n',33333, 2, 10 union all
select 'k',11111, 2, 35

На приведенных данных результирующий набор должен иметь вид :

a 22222 2
a 33333 2
a 88888 2
c 11111 2
d 11111 2
d 22222 1
e 11111 2
k 88888 2

Копаю в сторону рекурсивного CTE, но пока не получается, а хвост уже дымится ...
3 ноя 11, 11:46    [11545014]     Ответить | Цитировать Сообщить модератору
 Ошибся с результирующим набором.  [new]
smallserg
Member

Откуда:
Сообщений: 82
Конечно же , деталь a не должна входить
в результирующий набор :

c 11111 2
d 11111 2
d 22222 1
e 11111 2
k 88888 2
3 ноя 11, 13:16    [11545838]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить