Please start any new threads on our new site at https://forums.sqlteam.com. We've got lots of great SQL Server experts to answer whatever question you can come up with.

 All Forums
 SQL Server 2000 Forums
 Transact-SQL (2000)
 Having two conditions in on statement

Author  Topic 

AskSQLTeam
Ask SQLTeam Question

0 Posts

Posted - 2007-01-12 : 09:14:14
Mun writes "Hi,..

I need to parse two seperate sql statements (i.e.

Sum([Day1]+[Day2]+[Day3]+[Day4]+[Day5]+[Day6]+[Day7])
where "ProjectID"='0200' Or "ActID" Like '0%' from tableA

' as Column 2
' and

Sum([Day1]+[Day2]+[Day3]+[Day4]+[Day5]+[Day6]+[Day7])
where "ProjectID"<>'0200' Or "ACTID" not Like '0%' from tableA

' as Column 3
'which will be grouped by EmployeeID (being column 1)
'where tableA is

EmployeeID,ProjectID,ActID,Day1,Day2,Day3,Day4,Day5,Day6,Day7"

SwePeso
Patron Saint of Lost Yaks

30421 Posts

Posted - 2007-01-12 : 09:43:27
I don't think your logic is well thought out.
The two columns are not mutually exclusive.
SELECT		EmployeeID,
SUM(CASE
WHEN ProjectID = '0200' OR ActID LIKE '0%' THEN Day1 + Day2 + Day3 + Day4 + Day5 + Day6 + Day7
ELSE 0
END),
SUM(CASE
WHEN ProjectID <> '0200' OR ActID NOT LIKE '0%' THEN Day1 + Day2 + Day3 + Day4 + Day5 + Day6 + Day7
ELSE 0
END)
FROM TableA
GROUP BY EmployeeID


SELECT ISNULL(x.EmployeeID, y.EmployeeID) EmployeeID,
ISNULL(x.s, 0),
ISNULL(y.s, 0)
FROM (
SELECT EmployeeID,
SUM(Day1 + Day2 + Day3 + Day4 + Day5 + Day6 + Day7) s
FROM TableA
WHERE ProjectID = '0200'
OR ActID LIKE '0%'
GROUP BY EmployeeID
) x
FULL JOIN (
SELECT EmployeeID,
SUM(Day1 + Day2 + Day3 + Day4 + Day5 + Day6 + Day7) s
FROM TableA
WHERE ProjectID = '0200'
OR ActID LIKE '0%'
GROUP BY EmployeeID
) y ON y.EmployeeID = x.EmployeeID
ORDER BY 1


Peter Larsson
Helsingborg, Sweden
Go to Top of Page
   

- Advertisement -