Может ли кто-нибудь помочь в отладке SQL-запроса?
У меня возникли некоторые проблемы с некоторым запросом
Вот пример того, что я хочу
Цитата:
@QuantityEntered = 1 возвращает 1,50, потому что 1 попадает между 1 и 5, а 1,50 добавляется из поля цены в общей сложности 1,50
@QuantityEntered = 2 возвращает 3,00, потому что 2 падает между 1 и 5, а 1,50 добавляется из поля цены в общей сложности 3,00
@QuantityEntered = 3 возвращает 4,50, потому что 3 попадает между 1 и 5, а 1,50-это из поля цены, добавленного в общей сложности 4,50
@QuantityEntered = 4 возвращает 6.00, потому что 4 попадает между 1 и 5, а 1.50-это из поля цены, добавленного в общей сложности 6.00
@QuantityEntered = 5 возвращает 7,50, потому что 5 попадает между 1 и 5, а 1,50-это из поля цены, добавленного в общей сложности 7,50
@QuantityEntered = 6 возвращает 8,75, потому что 6 попадает между 6 и 10, а 1,25-это из поля цены, добавленного в общей сложности 8,75
@QuantityEntered = 7 возвращает 10.00, потому что 7 попадает между 6 и 10, а 1.25-это из поля цены, добавленного в общей сложности 10.00
@QuantityEntered = 8 возвращает 11,25, потому что 8 попадает между 6 и 10, а 1,25-это из поля цены, добавленного в общей сложности 11,25
@QuantityEntered = 9 возвращает 12.50, потому что 9 попадает между 6 и 10, а 1.25-это из поля цены, добавленного в общей сложности 12.50
@QuantityEntered = 10 возвращает 13,75, потому что 10 падает между 6 и 10, а 1,25-это из поля цены, добавленного в общей сложности 13,75
@QuantityEntered = 11 возвращает 14,75, потому что 11 попадает между 11 и 999999999, а 1,00-это из поля цены, добавленного в общей сложности 14,75
@QuantityEntered = 12 возвращает 15,75, потому что 12 попадает между 12 и 999999999, а 1,00-это из поля цены, добавленного в общей сложности 15,75
но я получаю это
Цитата:@QuantityEntered = 1 возвращает 1.50
@QuantityEntered = 2 возвращает 3.00
@QuantityEntered = 3 возвращает 4,50
@QuantityEntered = 4 возвращает 6.00
@QuantityEntered = 5 возвращает 7,50
@QuantityEntered = 6 возвращает 8,75
@QuantityEntered = 7 возвращает 10.00
@QuantityEntered = 8 возвращает 11,25
@QuantityEntered = 9 возвращает 12.50
@QuantityEntered = 10 возвращает 20
Что я уже пробовал:
DECLARE @QuantityEntered int DECLARE @ClassEntered int SET @QuantityEntered = 1; SET @ClassEntered = 1 --SELECT -- Sum(IIf(@QuantityEntered>[MaxValue],[MaxValue]*[Price],(@QuantityEntered-([MinValue]-1))*[Price])) AS RangePrice --FROM -- TierPricing --WHERE -- (((TierPricing.MinValue)<=@QuantityEntered) AND ((TierPricing.Class)=@ClassEntered)); --Select * from TierPricing --WHERE -- (((TierPricing.MinValue)<=@QuantityEntered) AND ((TierPricing.Class)=@ClassEntered)); SELECT Sum(IIf(@QuantityEntered>=TierPricing.MaxValue,TierPricing.MaxValue*TierPricing.Price,(@QuantityEntered-(TierPricing.MinValue-1))*TierPricing.Price)) AS RangePrice FROM TierPricing WHERE (((TierPricing.MinValue)<=@QuantityEntered) AND ((TierPricing.Class)=@ClassEntered));
Andy Lanng
Дважды проверьте свои границы полос. Возможно ли, что у вас где-то есть перекрытие?
Кроме того, пожалуйста, опубликуйте таблицу и сценарий данных, чтобы я мог сам воссоздать проблему
Спасибо ^_^
Aless Alessio
Если вы не опубликуете табличные данные, будет трудно понять, где ошибка моего друга ..