Crystal Report XI simple Если заявление иначе не работает - PullRequest
0 голосов
/ 13 марта 2012

У меня есть простой код, если «Field_name» меньше, чем «Date», отображается «Y» else «N», я не уверен, почему crystal игнорирует Условие и, похоже, отображает только часть else.Я получаю все буквы "N", даже если предполагается, что они есть "Y". Кто-нибудь еще сталкивался с этой проблемой, ПОМОГИТЕ !!!

код:

(case when ((select Distinct y.szrclin_pidm 
             from szrclin y
             where szrclin_start_date < '01-JAN-2011'
             and y.szrclin_pidm = spriden_pidm ) is not null)
           then 'Y'
           else 'N' 
       end ) "Prior Rotations"

Ответы [ 2 ]

0 голосов
/ 13 марта 2012

Вы действительно можете встраивать «сырой» SQL в Crystal Reports: либо как поле выражения SQL (возвращает скалярное значение), либо с помощью команды (возвращает набор записей). Использование одного исключает использование другого. В этой ситуации я бы предложил выражение SQL. Я сделал предположение о том, что вы пытаетесь сделать, но вам нужно это проверить.

(
SELECT count(spriden_pidm)
FROM   szrclin y
WHERE  szrclin_start_date < '01-JAN-2011'
//correlate to 'main' query
AND    y.szrclin_pidm = spriden_pidm
GROUP BY spriden_pidm
)
0 голосов
/ 13 марта 2012

Код, который у вас есть, не имеет особого смысла в контексте Crystal Reports.Вместо этого я предлагаю использовать простую формулу.

if {szrclin.szrclin_start_date} < date(2011,01,01) and {szrclin.szrclin_pidm} = szrclin.spriden.pidm} then 'Y' else 'N'

Если в вашем отчете есть таблица szrclin, я не вижу никакой причины использовать выражения SQL для чего-то подобного.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...