Когда я запускаю этот запрос ниже,
SELECT clientid,
CASE WHEN D.ccode = '-1' Then 'Did Not Show' ELSE D.ccode End ccode,
ca,
ot,
bw,
cshT,
dc,
dte,
approv
FROM dbo.emC D
WHERE year(dte) = year(getdate())
Я получаю правильные результаты.
Это правильный результат, потому что код показывает «Не показано», когда значение в БД равно'-1'
Однако, когда я делаю UNION ALL, чтобы получить итоговую сумму для каждого столбца, я получаю результаты, но тогда «Не показывать» больше не отображается, когда значение valye для ccode равно -1'.
Существует более 1000 записей со значением' -1 '.
Может кто-нибудь помочь?
Вот весь код с UNION.
SELECT clientid,
CASE WHEN D.ccode = '-1' Then 'Did Not Show' ELSE D.ccode End ccode,
ca,
ot,
bw,
cshT,
dc,
dte,
approv
FROM dbo.emC D WhERE year(dte) = year(getdate())
UNION ALL
SELECT 'Total',
'',
SUM(D.ca),
SUM(D.ot),
SUM(D.bw),
SUM(D.cshT),
'',
'',
''
FROM emC D
WHERE YEAR(dte)='2011'
Я также пытался использовать ROLLUP, но реальная проблема заключается в том, что я не могуполучить текст «Не показывать», который будет отображаться, когда значение кода равно -1
ClientID CCODE ot ca bw cshT
019692 CF001 0.00 0.00 1.00 0.00 0.00
019692 CH503 0.00 0.00 1.00 0.00 0.00
010487 AC407 0.00 0.00 1.00 0.00 0.00
028108 CH540 0.00 0.00 1.00 0.00 0.00
028108 GS925 0.00 0.00 1.00 0.00 0.00
001038 AC428 0.00 0.00 3.00 0.00 0.00
028561 Did Not Show 0.00 0.00 0.00 0.00 0.00
016884 Did Not Show 0.00 0.00 0.00 0.00 0.00
05184 CF001 0.00 0.00 4.50 0.00 0.00