Добро пожаловать в форум, Guest >> Войти | Регистрация | Поиск | Правила | | В избранное | Подписаться | ||
Все форумы / Microsoft SQL Server |
![]() ![]() |
ba3uk Member Откуда: Сообщений: 23 |
Ребят,всем привет, у меня тут возник вопрос ,для решения которого у вас может и не составит труда , но вот я начал затуплять. У меня есть хранимая процедура и суть заключается в том , что она может вызываться как с параметром так и без него. А теперь перейдем к вопросу , как сделать так что бы при запуске процедуры без параметров игнорировалась строка в запросе HAVING c.surname = @surname. А в противном случае была бы видна для программы |
20 дек 16, 22:50 [20029707] Ответить | Цитировать Сообщить модератору |
xenix
Guest |
ba3uk, Самое деревянное - написать в процедуре IF IF(LTRIM(RTRIM(ISNULL(@surname,''))))<>'' --запрос с HAVING c.surname = @surname ELSE --запрос без HAVING c.surname = @surname |
20 дек 16, 23:04 [20029736] Ответить | Цитировать Сообщить модератору |
ba3uk Member Откуда: Сообщений: 23 |
xenix,да , такой способ уже рассматривал, много кода дублируется ради добавления HAVING-a |
20 дек 16, 23:05 [20029743] Ответить | Цитировать Сообщить модератору |
xenix
Guest |
Здесь тебе не ООП, с инкапсуляцией, наследованием и полиморфизмом, здесь руками кодить надо :-) Ты бы лучше показал весь запрос, а то конструкция HAVING c.surname = @surname сама по себе вызывает сильные подозрения |
||
20 дек 16, 23:15 [20029763] Ответить | Цитировать Сообщить модератору |
alexeyvg Member Откуда: Moscow Сообщений: 31778 |
|
||
20 дек 16, 23:31 [20029800] Ответить | Цитировать Сообщить модератору |
aleks2
Guest |
HAVING @surname is null or c.surname = @surname |
||
21 дек 16, 06:04 [20030021] Ответить | Цитировать Сообщить модератору |
ba3uk Member Откуда: Сообщений: 23 |
aleks2,Спасибо, очень помогло |
21 дек 16, 06:37 [20030037] Ответить | Цитировать Сообщить модератору |
o-o
Guest |
Это говорит о том, что запрос накликан в аксессе, и что там нужен distinct. В результате абсолютно все вынесено в group by, а вместо where там having ![]() |
||||
21 дек 16, 08:00 [20030077] Ответить | Цитировать Сообщить модератору |
iap Member Откуда: Москва Сообщений: 47045 |
|
||||
21 дек 16, 11:01 [20030847] Ответить | Цитировать Сообщить модератору |
ba3uk Member Откуда: Сообщений: 23 |
iap, осознал это уже , теперь стало интересно , считается ли такой запрос агрегатной функцией ? HAVING @price is null or SUM(d.price + w.price) < @price |
21 дек 16, 23:57 [20034610] Ответить | Цитировать Сообщить модератору |
Все форумы / Microsoft SQL Server | ![]() |