Такая задача - (любые мысли и подсказки приветствуются).
Есть уже существующий код на T-SQL, --- приложила его в pdf аттачмент.
Моя задача - добавить к нему логический параметр - @Depreciation, в результате чего код будет работать следующим образом:
@Depreciation = 0
Должны выдаваться только записи, где DepreciationAcc = 0
@Depreciation = 1
Должны выдаваться записи, где DepreciationAcc = 0 или DepreciationAcc = 1
(т.е - где есть 0, 1)
В вордовском аттачменте - изменения которые касаются моеи проблемы - выделены желтым. (Остальная часть этого большого кода not really relevant)
Для достижения своей цели я перенесла CASE statement в WHERE (выделено желтым, а также красным /* !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! */
Работает, но когда @Depreciation = 1, то выдает записи ТОЛЬКО где trans.Amount = 0.
А нужно их все...
Где моя ошибка? Как написать условие чтобы получить результат описанный выше?
Спасибо, аз олвеис !!!
PS-
Прилагаю также частичную картинку результата, на всякий случай
Знатокам sql - как правильно изменить существующий код, в T-SQL?
-
- Уже с Приветом
- Posts: 4309
- Joined: 15 Jul 2015 03:22
Знатокам sql - как правильно изменить существующий код, в T-SQL?
You do not have the required permissions to view the files attached to this post.
-
- Уже с Приветом
- Posts: 11019
- Joined: 15 May 2002 02:09
- Location: Boston, MA
Re: Знатокам sql - как правильно изменить существующий код, в T-SQL?
(CASE WHEN (NOT (acct.[GLAccountCode] IN (N'9040',N'9047',N'4130')) AND (@Depreciation = 0))
THEN 0 ELSE trans.Amount END)=0
trans.Amount -- надо б заменить на что-то...
не люблю кэйсы...
![No-o-o! :noo:](./images/smilies/Noooooooo.gif)
слишком сложно их читать.
может завести функцию под это дело?
-
- Уже с Приветом
- Posts: 4309
- Joined: 15 Jul 2015 03:22
Re: Знатокам sql - как правильно изменить существующий код, в T-SQL?
Never mind!
Уже знаю как нужно)) !!!
Вопрос снимается
Уже знаю как нужно)) !!!
Вопрос снимается