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.
| Author |
Topic |
|
shahid09
Starting Member
35 Posts |
Posted - 2009-12-03 : 11:02:44
|
| Hi All,Can i give multiple conditons in one statement ? Actually in my SQL i have two columns like Provider AltProviderP1 P1 NPP1 P1I want to count only where Provider is P1 and AltProvider is empty. I don't know why following SQL is not returning correct result. When I give only one condition i get correct value from the table.[Code]Count(Case When Provider Like '%P1%' and AltProvider <> '' Then A) [/code] |
|
|
Transact Charlie
Master Smack Fu Yak Hacker
3451 Posts |
Posted - 2009-12-03 : 11:31:41
|
not sure what you are trying to achieve here. Did you want something like this:DECLARE @foo TABLE ( [provider] VARCHAR(2) , [altProvider] VARCHAR(2) )INSERT @foo ([provider], [altProvider]) SELECT 'P1', ''UNION SELECT 'P1', 'NP'UNION SELECT 'P1', 'P1'SELECT * FROM @fooSELECT f.[provider] , f.[altProvider] , CASE WHEN (f.[provider] LIKE '%P1%' AND f.[altProvider] <> '') THEN 'A' ELSE NULL END AS [check]FROM @foo f Charlie===============================================================Msg 3903, Level 16, State 1, Line 1736The ROLLBACK TRANSACTION request has no corresponding BEGIN TRANSACTION |
 |
|
|
shahid09
Starting Member
35 Posts |
Posted - 2009-12-03 : 11:41:58
|
| I want to count total providers where provider is P1 and AltProvider is empty from the above 2 columns. |
 |
|
|
Transact Charlie
Master Smack Fu Yak Hacker
3451 Posts |
Posted - 2009-12-03 : 11:44:25
|
Assuming that AltProvider is NULL if not populated. If it is the empty string then replace the IS NULL check with = '' maybe this:SELECT COUNT(*)FROM <your_table>WHERE Provider = 'P1' AND AltProvider IS NULL If that's not it can you post the table structure or query that you are using to generate the sample data.Regards,Charlie.Charlie===============================================================Msg 3903, Level 16, State 1, Line 1736The ROLLBACK TRANSACTION request has no corresponding BEGIN TRANSACTION |
 |
|
|
shahid09
Starting Member
35 Posts |
Posted - 2009-12-03 : 12:07:26
|
Thanks Charlie,Here is my queurySELECT F.Requirements, Count(F.TS_NAME)AS TotalTestCases, COUNT(CASE WHEN TS_USER_18 Like '%P1%' And TS_USER_11 not Like '' Then TS_USER_18 END) AS P1, COUNT(CASE WHEN TS_USER_18 Like '%P2%' Then TS_USER_18 END) AS P2, COUNT(CASE WHEN TS_USER_18 Like '%NP%' Then TS_USER_18 END) AS NP, COUNT(CASE WHEN TS_USER_11 <> '' Then TS_USER_11 END) AS AltProviderFrom ( SELECT Distinct TEST.TS_NAME,(SELECT TESTCYCL.TC_STATUS from TESTCYCL where TEST.TS_TEST_ID = TESTCYCL.TC_TEST_ID and TESTCYCL.TC_CYCLE_ID = (Select max(TESTCYCL.TC_CYCLE_ID) from TESTCYCL WHERE TESTCYCL.TC_TEST_ID = TEST.TS_TEST_ID)) AS STATUS,TEST.TS_USER_24 AS TC_VALIDATED, Requirements =Case WHEN RQ_REQ_PATH Like 'AAAAADAARAADAAC%' Then 'Medi' WHEN RQ_REQ_PATH Like 'AAAAADAALAAN%' THEN 'MHS' WHEN RQ_REQ_PATH Like 'AAAAADAALAAPAAB%' THEN 'OB90'Else 'Unknown'END, TEST.TS_USER_18, TEST.TS_USER_11, TEST.TS_USER_14, TEST.TS_USER_22FROM TEST, REQ_COVER, REQWHERE TEST.TS_TEST_ID = REQ_COVER.RC_ENTITY_ID AND REQ.RQ_REQ_ID = REQ_COVER.RC_REQ_ID) FGroup by F.Requirements |
 |
|
|
shahid09
Starting Member
35 Posts |
Posted - 2009-12-03 : 12:08:37
|
| Table F has two columns TS_USER_18 TS_USER_11P1 P1 NPP2 P1P1 |
 |
|
|
Transact Charlie
Master Smack Fu Yak Hacker
3451 Posts |
Posted - 2009-12-03 : 12:18:01
|
Maybe this?SELECT F.Requirements, Count(F.TS_NAME)AS TotalTestCases, COUNT(CASE WHEN TS_USER_18 Like '%P1%' And TS_USER_11 <> '' Then TS_USER_18 END) AS P1, COUNT(CASE WHEN TS_USER_18 Like '%P2%' Then TS_USER_18 END) AS P2, COUNT(CASE WHEN TS_USER_18 Like '%NP%' Then TS_USER_18 END) AS NP, COUNT(CASE WHEN TS_USER_11 <> '' Then TS_USER_11 END) AS AltProviderFrom ( SELECT Distinct TEST.TS_NAME,(SELECT TESTCYCL.TC_STATUS from TESTCYCL where TEST.TS_TEST_ID = TESTCYCL.TC_TEST_ID and TESTCYCL.TC_CYCLE_ID = (Select max(TESTCYCL.TC_CYCLE_ID) from TESTCYCL WHERE TESTCYCL.TC_TEST_ID = TEST.TS_TEST_ID)) AS STATUS,TEST.TS_USER_24 AS TC_VALIDATED, Requirements =Case WHEN RQ_REQ_PATH Like 'AAAAADAARAADAAC%' Then 'Medi' WHEN RQ_REQ_PATH Like 'AAAAADAALAAN%' THEN 'MHS' WHEN RQ_REQ_PATH Like 'AAAAADAALAAPAAB%' THEN 'OB90'Else 'Unknown'END, TEST.TS_USER_18, TEST.TS_USER_11, TEST.TS_USER_14, TEST.TS_USER_22FROM TEST, REQ_COVER, REQWHERE TEST.TS_TEST_ID = REQ_COVER.RC_ENTITY_ID AND REQ.RQ_REQ_ID = REQ_COVER.RC_REQ_ID) FGroup by F.Requirements |
 |
|
|
shahid09
Starting Member
35 Posts |
Posted - 2009-12-03 : 12:19:40
|
| I tried with <> also, but I am getting unexpected result. |
 |
|
|
|
|
|
|
|