|
Archives of the TeradataForumMessage Posted: Tue, 28 Jul 2009 @ 15:52:54 GMT
Hi Everyone, First let me apologize, I'm new to SQL and Teradata. I have written the following query: Select location, unit_ID, fault, Count(fault) as FltCnt From database Where location = 4443 And unit_ID = 3124 And fault=3 OR fault=35 OR fault=155 or fault=156 Group by location, unit_ID, fault Order by location, unit_ID, fault The actual query is more detailed than this but this gives you the key idea. From this query I get the results that I expect and have checked to make sure it is correct : Location unit_ID Fault FltCnt 4443 3124 3 6 4443 3124 35 1 4443 3124 155 1 4443 3124 156 3 But the results I am really looking for is : Location unit_ID Fault3 Fault35 Fault155 Fault156 4443 3124 6 1 1 3 I then tried using Case statements as such: Select t.location, t.unit_ID, (Case When t.fault=3 Then t.FltCnt Else 0 End) as Fault3, (Case When t.fault=35 Then t.FltCnt Else 0 End) as Fault35, (Case When t.fault=155 Then t.FltCnt Else 0 End) as Fault155, (Case When t.fault=156 Then t.FltCnt Else 0 End) as Fault156, From ( Select location, unit_ID, fault, Count(fault) as FltCnt From database Where location = 4443 And unit_ID = 3124 And fault=3 OR fault=35 OR fault=155 or fault=156 Group by location, unit_ID, fault) t The results of this, instead of getting one row, I get : Park ID Flt_3 Flt_35 Flt_155 Flt_156 4443 840073124 0 0 0 3 4443 840073124 6 0 0 0 4443 840073124 0 1 0 0 4443 840073124 0 0 1 0 The right answers but I really wanted one row. What am I doing wrong? Thanks, Fred
| ||||||||||||||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||||||||||||||
Copyright 2016 - All Rights Reserved | ||||||||||||||||||||||||||||||||||||||||||||||||
Last Modified: 15 Jun 2023 | ||||||||||||||||||||||||||||||||||||||||||||||||