Добрый день.
Сначала покажу на примере, потом объясню что надо :)
В нормальном виде можно написать так (вывести все значения или только положительные в зависимости от типа по конкретному документу)
select storer, qty from receipt where key=@Param and type=25
union all
select storer, qty from receipt where key=@Param and qty>0 and type<>25
Но есть система в которой запросы проходят не напрямую в SQL а через специальный адаптер, где параметры подставляются сами, и выглядят :Param
Загвоздка в том, что этот адаптер подменяет только одно вхождение параметра, но никак не два.
Вот теперь собственно вопрос как переписать выражение выше, но используя параметр только 1 раз. Ни ХП ни функции нельзя использовать, т.к. в адаптер можно передавать только чистые select. If тоже не проходят, begin end тоже, т.е. ограничения жесточайшие.
Т.е. если бы можно было бы переписать
select storer, qty from receipt rec1 where rec1.key=@Param and type=25
union all
select storer, qty from receipt rec2 where rec2.key=rec1.key and qty>0 and type<>25
но увы нельзя, но очень надо :)