Groups | Blog | Home
all groups > sql server (alternate) > june 2003 >

sql server (alternate) : Supress result 0


MB95547
6/26/2003 6:15:34 PM

I have the following code to SUM based on one field but want to be able
to not show rows which result is 0.
========================
SELECT Headers.employee_id AS Employee#,
SUM(CASE Headers.scan_type WHEN 'I' THEN 1 ELSE 0 END) AS SIP,
SUM(CASE Headers.scan_type WHEN 'F' THEN 1 ELSE 0 END) AS PUP,
SUM(CASE Headers.scan_type WHEN 'Q' THEN 1 ELSE 0 END) AS CMT,
SUM(CASE Headers.scan_type WHEN 'M' THEN 1 ELSE 0 END) AS CONS,
SUM(CASE Headers.scan_type WHEN '\' THEN 1 ELSE 0 END) AS HIP,
SUM(CASE Headers.scan_type WHEN 'U' THEN 1 ELSE 0 END) AS HOP,
SUM(CASE Headers.scan_type WHEN '^' THEN 1 ELSE 0 END) AS INSTA,
SUM(CASE Headers.scan_type WHEN 'L' THEN 1 ELSE 0 END) AS ONRD,
SUM(CASE Headers.scan_type WHEN 'B' THEN 1 ELSE 0 END) AS POD,
SUM(CASE Headers.scan_type WHEN 'G' THEN 1 ELSE 0 END) AS PUX,
SUM(CASE Headers.scan_type WHEN '#' THEN 1 ELSE 0 END) AS ROP,
SUM(CASE Headers.scan_type WHEN 'J' THEN 1 ELSE 0 END) AS SOP,
SUM(CASE Headers.scan_type WHEN 'N' THEN 1 ELSE 0 END) AS STAT,
SUM(CASE Headers.scan_type WHEN 'R' THEN 1 ELSE 0 END) AS UNCON,
SUM(CASE Headers.scan_type WHEN '<' THEN 1 ELSE 0 END) AS
USPS_PSP,
SUM(CASE Headers.scan_type WHEN '\"' THEN 1 ELSE 0 END) AS RIP,
COUNT (Scans.header_index) AS EmpTot
FROM Headers INNER JOIN
Scans ON Headers.header_index = Scans.header_index
WHERE (Scans.datetime BETWEEN '06/18/2003 00:00:00' AND
'06/19/2003 23:59:00')
GROUP BY Headers.employee_id
ORDER BY Headers.employee_id
===============================

Any ideas?
Thanks,
Manuel

--
MB95547
6/27/2003 2:52:27 PM

SELECT *
FROM
(
SELECT Headers.employee_id AS Employee#,
SUM(CASE Headers.scan_type WHEN 'I' THEN 1 ELSE 0 END) AS SIP,
SUM(CASE Headers.scan_type WHEN 'F' THEN 1 ELSE 0 END) AS PUP,
SUM(CASE Headers.scan_type WHEN 'Q' THEN 1 ELSE 0 END) AS CMT,
SUM(CASE Headers.scan_type WHEN 'M' THEN 1 ELSE 0 END) AS CONS,
SUM(CASE Headers.scan_type WHEN '\' THEN 1 ELSE 0 END) AS HIP,
SUM(CASE Headers.scan_type WHEN 'U' THEN 1 ELSE 0 END) AS HOP,
SUM(CASE Headers.scan_type WHEN '^' THEN 1 ELSE 0 END) AS INSTA,
SUM(CASE Headers.scan_type WHEN 'L' THEN 1 ELSE 0 END) AS ONRD,
SUM(CASE Headers.scan_type WHEN 'B' THEN 1 ELSE 0 END) AS POD,
SUM(CASE Headers.scan_type WHEN 'G' THEN 1 ELSE 0 END) AS PUX,
SUM(CASE Headers.scan_type WHEN '#' THEN 1 ELSE 0 END) AS ROP,
SUM(CASE Headers.scan_type WHEN 'J' THEN 1 ELSE 0 END) AS SOP,
SUM(CASE Headers.scan_type WHEN 'N' THEN 1 ELSE 0 END) AS STAT,
SUM(CASE Headers.scan_type WHEN 'R' THEN 1 ELSE 0 END) AS UNCON,
SUM(CASE Headers.scan_type WHEN '<' THEN 1 ELSE 0 END) AS
USPS_PSP,
SUM(CASE Headers.scan_type WHEN '\"' THEN 1 ELSE 0 END) AS RIP,
COUNT (Scans.header_index) AS EmpTot
FROM Headers INNER JOIN
Scans ON Headers.header_index = Scans.header_index
WHERE (Scans.datetime BETWEEN '06/18/2003 00:00:00' AND
'06/19/2003 23:59:00')
GROUP BY Headers.employee_id
-- ORDER BY Headers.employee_id
)
T
WHERE 0
ORDER BY Employee#

--
MB95547
6/27/2003 11:04:30 PM

Thanks Diego.
I still see the same results...
The problem is that the SUM(CASE ... creates a column for each case.
If there was a way of comparing the reult for SIP, PUP, ETC . and based
on that not show the column, ...

Rgds,

--
Steve Kass
6/28/2003 2:00:48 AM
What do you mean by "WHERE 0" ? Do you mean

where SIP = 0 OR PUP = 0 OR CMT = 0 ...

or do you mean

where SIP = 0 AND PUP = 0 AND CMT = 0 AND ...

or something else?

Also, be careful with your date range. If Scans.datetime is
not smalldatetime, you will lose the last minute of every day. It is
better to say

where (Scans.datetime >= '20000618' and Scans.datetime < '20000619')

also because mm/dd/yyyy is not portable to different language settings,
but yyyymmdd is.

SK

[quoted text, click to view]
MB95547
6/30/2003 4:24:33 PM

Sorry, I pressed the wrong key .... this is the rest of my reply ...

and in the second option you metion "WHERE 0" ...
unless you meant something else or you're thinking about a different DB
engine than MSSQL "HAVING 0" and "WHERE 0" are syntactically incorrect.

Thanks,

--
MB95547
6/30/2003 11:08:30 PM

Thanks Erland. Now I see what the confusion was.
Sorry Steve.

Rgds,

--
MB95547
7/1/2003 7:17:44 PM

I haven't been able to resolve this probelm.
My guess is that columns in you select statement can not be supressed in
the result.

I'm I right?

Rgds,

--
AddThis Social Bookmark Button