简体   繁体   中英

SSRS cannot parse SQL query

I am trying to define an SQL query in my SSRS report, but I am getting some syntax errors:

Error in SELECT clause: expression near 'WHEN'.
Missing FROM clause.
Error in SELECT clause: expression near ','.
Unable to parse query text.

The query is not that complicated, but rather a bit convoluted, but I'll try to convey at least the structure of it here:

select 

(CASE WHEN columnA1 is null THEN columnA2 ELSE columnA1 END) as columnA,
(CASE WHEN columnB1 is null THEN columnB2 ELSE columnB1 END) as "custom_name_for_columnB"

from
(

(select a.columnA1, ... 
from myTable a, ...
// join conditions
)

union

select * from 
(select a.columnA1, ...
from myTable a, ...
// join conditions
order by someColumn) source
)
);

I don't think it really matters what the query does since I ran it in my DMBS successfully, so I'm pretty sure it's correct SQL syntax (I'm working on Oracle DB). I think what I'm not seeing is some syntax specific to SSRS. I'm completely new to it, so I don't know whether it supports the entire SQL syntax like CASE WHEN, unions etc.

As it complains about CASE (as if it doesn't recognize the syntax), try some more options:

COALESCE :

select coalesce(columnA1, columnA2) columnA,
       coalesce(columnB1, columnB2) columnB
from ...

NVL :

select nvl(columnA1, columnA2) columnA,
       nvl(columnB1, columnB2) columnB
from ...

DECODE :

select decode(columnA1, null, columnA2, columnA1) columnA,
       decode(columnB1, null, columnB2, columnB1) columnB
from ...

Correct my query if I made too many changes, but I think there are a couple of things wrong:

SELECT (CASE WHEN t.columnA1 IS NULL THEN t.columnA2 ELSE t.columnA1 END) as columnA,
       (CASE WHEN t.columnB1 IS NULL THEN t.columnB2 ELSE t.columnB1 END) as [custom_name_for_columnB]
FROM(
     SELECT a.columnA1, ... 
     FROM myTable a, ...
     JOIN conditions

     UNION

     SELECT * FROM
     (
        SELECT a.columnA1, ...
        FROM m myTable a, ...
        JOIN conditions
        --ORDER BY someColumn --Can't have ORDER BY in subquery without TOP(n) / FOR XML.
     ) source
)t; --Needs an alias

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM