Переключение на Главную Страницу Страницы: 1 [2]  ОтправитьПечать
Горячая тема (более 10 ответов) Позскажите как правильно наложить фильтр в запросе? (число прочтений - 3884 )
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: Позскажите как правильно наложить фильтр в запросе?
Ответ #15 - 18. Октября 2011 :: 13:27
Печать  
(12) по моему условие
|and (($Скидки.Номенклатура IN (SELECT Val FROM #ГруппаН)) or ($Скидки.Номенклатура = :ТекНоменклатура)) лишние
т.к. итак все что надо уже есть во временной таблице ( но может я и не прав т.к. не полностью понимаю исходную задачу)
т.е. можешь съекономить на создании #ГруппаН
также (ИХМО) временная таблица итак полностью только твоя поэтому на ней не нужен nolock а если оставлять nolock то тогда точно на такой маленькой таблице не нужен индекс.


« Последняя редакция: 18. Октября 2011 :: 14:45 - Z1 »  
Наверх
 
IP записан
 
dimm73
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 414
Зарегистрирован: 03. Июля 2006
Пол: Мужской
Re: Позскажите как правильно наложить фильтр в запросе?
Ответ #16 - 19. Октября 2011 :: 04:18
Печать  
Salimbek писал(а) 18. Октября 2011 :: 12:56:
Ну дак... у тебя временная таблица создана, второй раз не создается и ругается с ошибкой. Чисть за собой, делай в конце запросов - рс.ВыполнитьСкалярный("DROP TABLE #x_tovar");


Спасибо, теперь все работает
  
Наверх
 
IP записан
 
dimm73
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 414
Зарегистрирован: 03. Июля 2006
Пол: Мужской
Re: Позскажите как правильно наложить фильтр в запросе?
Ответ #17 - 19. Октября 2011 :: 04:18
Печать  
Z1 писал(а) 18. Октября 2011 :: 13:27:
(12) по моему условие
|and (($Скидки.Номенклатура IN (SELECT Val FROM #ГруппаН)) or ($Скидки.Номенклатура = :ТекНоменклатура)) лишние
т.к. итак все что надо уже есть во временной таблице ( но может я и не прав т.к. не полностью понимаю исходную задачу)
т.е. можешь съекономить на создании #ГруппаН
также (ИХМО) временная таблица итак полностью только твоя поэтому на ней не нужен nolock а если оставлять nolock то тогда точно на такой маленькой таблице не нужен индекс.





Да вы правы, так и сделаю.

Огромное спасибо
  
Наверх
 
IP записан
 
ol
Senior Member
****
Отсутствует


1C++ rocks!

Сообщений: 272
Местоположение: Санкт-Петербург
Зарегистрирован: 24. Января 2009
Пол: Мужской
Re: Позскажите как правильно наложить фильтр в запросе?
Ответ #18 - 28. Октября 2011 :: 13:24
Печать  
м.такую приблуду вставить

Код
Выбрать все
............
,case when $Скидки.Номенклатура=:ТекНоменклатура then 1 else 0 end УровеньНиз
,case when $Скидки.Номенклатура=:РодительТекНоменклатура then 1 else 0 end УровеньНизМинусОдин
............

 

  
Наверх
ICQ  
IP записан
 
ol
Senior Member
****
Отсутствует


1C++ rocks!

Сообщений: 272
Местоположение: Санкт-Петербург
Зарегистрирован: 24. Января 2009
Пол: Мужской
Re: Позскажите как правильно наложить фильтр в запросе?
Ответ #19 - 28. Октября 2011 :: 13:27
Печать  
или еще лучше

Код
Выбрать все
............
,case when $Скидки.Номенклатура=:ТекНоменклатура then 100 else
case when $Скидки.Номенклатура=:РодительТекНоменклатура then 99 else
......
 end end .... ПоказательУровня
............

 

  
Наверх
ICQ  
IP записан
 
ol
Senior Member
****
Отсутствует


1C++ rocks!

Сообщений: 272
Местоположение: Санкт-Петербург
Зарегистрирован: 24. Января 2009
Пол: Мужской
Re: Позскажите как правильно наложить фильтр в запросе?
Ответ #20 - 28. Октября 2011 :: 13:35
Печать  
при желании, можно это закинуть в подзапрос, потом выбирать top 1 по ПоказательУровня, и сразу делать ВыполнитьСкалярный, который вернет размер скидки. и все оформить параметрическим запросом
  
Наверх
ICQ  
IP записан
 
Переключение на Главную Страницу Страницы: 1 [2] 
ОтправитьПечать