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

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

Уже час бьюсь над подобным запросом и везде натыкаюсь на различные грабли.

Суть в следующем.

Есть таблица Quotes ( ID, UpperLimit, LowerLimit, Profitable, LaneID, Cost)

Есть таблица Lanes (ID, Quantity, UsageFrequency)

нужно выставить строкам из Quotes Profitable = 1, у которых Cost минимален среди строк с одинаковым LaneID для которых выполняется LowerLimit <= Lanes.UsageFrequency * Lanes.Quantity <= UpperLimit (где Lane.ID = LaneID).

То есть в целом для каждой уникальной Lane нужно выбрать Quote удовлетворяющую таким условиям и имеющую наименьшую цену.

Заранее благодарен за помощь!
10 фев 14, 12:55    [15545686]     Ответить | Цитировать Сообщить модератору
 Re: поиск минимума по группам с условиями  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24290
а что не получается,где ваш код ?
10 фев 14, 12:57    [15545705]     Ответить | Цитировать Сообщить модератору
 Re: поиск минимума по группам с условиями  [new]
innocence
Member

Откуда:
Сообщений: 7
Думал сделать что-то вроде

UPDATE dbo.Quotes
SET Profitable = 1
WHERE ID IN
(
SELECT ID FROM dbo.Quotes
GROUP BY LaneID
HAVING LowerLimit <= (SELECT Quantity*Frequency FROM dbo.Lanes WHERE ID = LaneID) and UpperLimit >=(SELECT Quantity*Frequency FROM dbo.Lanes WHERE ID = LaneID) and Cost = Min (Cost)
)

но начинает ругаться на наверное использование having. + я не совсем уверен что это будет минимум именно среди строк удовлетворяющих неравенству для каждой группы...
10 фев 14, 13:27    [15545926]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить