2013-05-30 2 views
0

У меня есть следующий подзапрос в моем запросе на выбор, который получает последнюю дату покупки продукта, дату покупки, номер заказа и поставщика на основании последней даты покупки. Тем не менее, мне нужно изменить его, чтобы, если последняя покупка составляет менее 10 долларов США, она будет следующей следующей датой покупки и т. Д., И соответственно укажите дату покупки, номер заказа и поставщика.Расчет предыдущей покупной цены, если значение меньше 10 SQL

Любые предложения, как бы я это сделал?

+3

вы должны приложить больше усилий в форматирование кода в следующий раз .. –

+0

Я не видел никакого кода в вопросе, выглядит как редактировать 3 удалены все это –

ответ

0

Добавление purchamt >= 10 условие должно помочь

,LastPurchase=(SELECT TOP (1) purchamt AS LastPurchase 
FROM purchase AS p 
WHERE (masterid = m.masterid) 
    AND (purchvendorid <> '') 
    AND purchamt >= 10 
ORDER BY purchasedate DESC) 

,PurchaseDate=(SELECT TOP (1) purchasedate 
FROM purchase AS p 
WHERE (masterid = m.masterid) 
    AND (purchvendorid <> '') 
    AND purchamt >= 10 
ORDER BY purchasedate DESC) 

,PONo=(SELECT TOP 1 do.orderno 
FROM [purchase] p INNER JOIN dealorder do on do.orderid = p.purchasepoid 
WHERE (masterid = m.masterid) 
    AND (purchvendorid <> '') 
    AND purchamt >= 10 
ORDER BY purchasedate DESC) 

,vendor=(SELECT TOP 1 v.vendor 
FROM [purchase] p INNER JOIN vendor v on v.vendorid = p.purchvendorid 
WHERE (masterid = m.masterid) 
    AND (purchvendorid <> '') 
    AND purchamt >= 10 
ORDER BY purchasedate DESC) 
0

Я не знаю, если я правильно или не понял ваш вопрос, но все, что вы хотите, сумма покупки должна быть> 10 только добавить, что в вашем подзапрос. Он будет игнорировать все даты покупки, где сумма < 10.

Надеюсь, это поможет.

SELECT TOP (1) purchamt AS LastPurchase 
FROM purchase AS p 

WHERE (masterid = m.masterid) 
    AND (purchvendorid <> '') 
    and purchamt > 10 
ORDER BY purchasedate DESC 
Смежные вопросы