Subject | Re: [firebird-support] How can I correctly write this WHERE |
---|---|
Author | Venus Software Operations |
Post date | 2018-06-20T11:41:51Z |
Hi Thomasz
You have understood me correctly, that is what I want to do and your suggestion works thanks.
Please see my reply to SET as the query has slowed down to 10 minutes with your code. The fault is in my setup but if have anything to suggest that would be great
Thanks
Kind regards
Bhavbhuti
Hi,
As I understand it, what you meant is:
where
(
TRIM(vwTA.cNameCity01) = 'Balance Sheet' and CAST(tSI.tDt AS DATE) <
'2018-04-01'
)
or
(
TRIM(vwTA.cNameCity01) is distinct from 'Balance Sheet'
and CAST(tSI.tDt AS DATE) BETWEEN '2018-03-01' AND '2018-03-31'
)
If vwTA.cNameCity01 is sure to be not null, you can put a plain <> in
place of "is distinct from".
This condition is different from what Svein posted an hour ago, but the
above is how I understand your _intention_ in your WHEN condition (I
might be wrong, though ;) ).
cheers
Tomasz
On 19.06.2018 o 10:25, venussoftop@... [firebird-support] wrote:
> Hi all
>
>
> I am trying to write a conditional WHERE clause but it fails. Please suggest a correct way to write this
>
>
> WHERE CASE WHEN TRIM(vwTA.cNameCity01) = 'Balance Sheet'
> THEN CAST(tSI.tDt AS DATE) < '2018-04-01'
> ELSE CAST(tSI.tDt AS DATE) BETWEEN '2018-03-01' AND '2018-03-31' END
>
>
>
> vwTA and tSI are all joined into the query and the error I receive is
>
> Message: isc_dsql_prepare failed
>
> SQL Message : -104
> Invalid token
>
> Engine Code : 335544569
> Engine Message :
> Dynamic SQL Error
> SQL error code = -104
> Token unknown - line 35, column 29
> <
>
>
> This is the < in the THEN clause
>
>
>
> Please advise
>
>
> Kind regards
> Bhavbhuti
>
>
--
__--==============================--__
__--== Tomasz Tyrakowski ==--__
__--== SOL-SYSTEM ==--__
__--== http://www.sol-system.pl ==--__
__--==============================--__