October 17, 2008 at 3:12 am
I have the following SQL statement:
SELECT tbMeasurement.MonitoredEntityCode, CASE WHEN tbMeasurement.MonitoredLocationCode = 'EMISSION_POINT_1' THEN tbMeasurement.NumericResult END AS 'EMISSION_POINT_1'
,CASE WHEN tbMeasurement.MonitoredLocationCode = 'EMISSION_POINT_2' THEN tbMeasurement.NumericResult END AS 'EMISSION_POINT_2'
,CASE WHEN tbMeasurement.MonitoredLocationCode = 'EMISSION_POINT_3' THEN tbMeasurement.NumericResult END AS 'EMISSION_POINT_3'
,CASE WHEN tbMeasurement.MonitoredLocationCode = 'EMISSION_POINT_4' THEN tbMeasurement.NumericResult END AS 'EMISSION_POINT_4'
,CASE WHEN tbMeasurement.MonitoredLocationCode = 'EMISSION_POINT_5' THEN tbMeasurement.NumericResult END AS 'EMISSION_POINT_5'
,CASE WHEN tbMeasurement.MonitoredLocationCode = 'EMISSION_POINT_6' THEN tbMeasurement.NumericResult END AS 'EMISSION_POINT_6'
,CASE WHEN tbMeasurement.MonitoredLocationCode = 'EMISSION_POINT_7' THEN tbMeasurement.NumericResult END AS 'EMISSION_POINT_7'
,CASE WHEN tbMeasurement.MonitoredLocationCode = 'EMISSION_POINT_8' THEN tbMeasurement.NumericResult END AS 'EMISSION_POINT_8'
,CASE WHEN tbMeasurement.MonitoredLocationCode = 'EMISSION_POINT_9' THEN tbMeasurement.NumericResult END AS 'EMISSION_POINT_9'
,CASE WHEN tbMeasurement.MonitoredLocationCode = 'FUGITIVE_TOTAL' THEN tbMeasurement.NumericResult END AS 'FUGITIVE_TOTAL'
,CASE WHEN tbMeasurement.MonitoredLocationCode = 'ACCIDENTAL_TOTAL' THEN tbMeasurement.NumericResult END AS 'ACCIDENTAL TOTAL',
tbMeasurement.SampleID, tbMeasurement.ParameterCode, tbParameter.ParameterDescription,
tbMeasurementExtraData.M_C_E, tbMeasurementExtraData.MethodCode,
tbMeasurementExtraData.Description
FROM (tbMeasurement INNER JOIN
tbParameter ON tbMeasurement.ParameterCode = tbParameter.ParameterCode) INNER JOIN
tbMeasurementExtraData ON (tbMeasurement.ParameterCode = tbMeasurementExtraData.ParameterCode)
AND (tbMeasurement.SampleID = tbMeasurementExtraData.SampleID)
AND (tbMeasurement.MonitoredLocationCode = tbMeasurementExtraData.MonitoredLocationCode)
AND (tbMeasurement.MonitoredEntityCode = tbMeasurementExtraData.MonitoredEntityCode)
As you can see I as using a Case statement to create a new column for each type of emission point found and for Fugitive and Accidental Totals. What I am also trying to do is to replace the null values returned for Fugitive and Accidental Totals with a 0. I have tried using an inner case statement but that doesn't seem to work, any suggestions? I have also tried the replace statement, no effect.
Michael.
October 17, 2008 at 3:28 am
If i have understood correctly.........
CASE WHEN tbMeasurement.MonitoredLocationCode = 'FUGITIVE_TOTAL' THEN ISNULL(tbMeasurement.NumericResult,0) END AS 'FUGITIVE_TOTAL'
,CASE WHEN tbMeasurement.MonitoredLocationCode = 'ACCIDENTAL_TOTAL' THEN ISNULL(tbMeasurement.NumericResult,0) END AS 'ACCIDENTAL TOTAL'
"Keep Trying"
October 17, 2008 at 3:37 am
Using ISNULL?
[font="Courier New"]SELECT m.MonitoredEntityCode,
CASE WHEN m.MonitoredLocationCode = 'EMISSION_POINT_1' THEN m.NumericResult END AS 'EMISSION_POINT_1',
CASE WHEN m.MonitoredLocationCode = 'EMISSION_POINT_2' THEN m.NumericResult END AS 'EMISSION_POINT_2',
CASE WHEN m.MonitoredLocationCode = 'EMISSION_POINT_3' THEN m.NumericResult END AS 'EMISSION_POINT_3',
CASE WHEN m.MonitoredLocationCode = 'EMISSION_POINT_4' THEN m.NumericResult END AS 'EMISSION_POINT_4',
CASE WHEN m.MonitoredLocationCode = 'EMISSION_POINT_5' THEN m.NumericResult END AS 'EMISSION_POINT_5',
CASE WHEN m.MonitoredLocationCode = 'EMISSION_POINT_6' THEN m.NumericResult END AS 'EMISSION_POINT_6',
CASE WHEN m.MonitoredLocationCode = 'EMISSION_POINT_7' THEN m.NumericResult END AS 'EMISSION_POINT_7',
CASE WHEN m.MonitoredLocationCode = 'EMISSION_POINT_8' THEN m.NumericResult END AS 'EMISSION_POINT_8',
CASE WHEN m.MonitoredLocationCode = 'EMISSION_POINT_9' THEN m.NumericResult END AS 'EMISSION_POINT_9',
CASE WHEN m.MonitoredLocationCode = 'FUGITIVE_TOTAL' THEN ISNULL(m.NumericResult, 0) END AS 'FUGITIVE_TOTAL',
CASE WHEN m.MonitoredLocationCode = 'ACCIDENTAL_TOTAL' THEN ISNULL(m.NumericResult, 0) END AS 'ACCIDENTAL TOTAL',
m.SampleID, m.ParameterCode,
p.ParameterDescription,
e.M_C_E, e.MethodCode, e.Description
FROM tbMeasurement m
INNER JOIN tbParameter p ON m.ParameterCode = p.ParameterCode
INNER JOIN tbMeasurementExtraData e ON m.ParameterCode = e.ParameterCode
AND m.SampleID = e.SampleID
AND m.MonitoredLocationCode = e.MonitoredLocationCode
AND m.MonitoredEntityCode = e.MonitoredEntityCode
[/font]
Cheers
ChrisM
For fast, accurate and documented assistance in answering your questions, please read this article.
Understanding and using APPLY, (I) and (II) Paul White
Hidden RBAR: Triangular Joins / The "Numbers" or "Tally" Table: What it is and how it replaces a loop Jeff Moden
Viewing 3 posts - 1 through 3 (of 3 total)
You must be logged in to reply to this topic. Login to reply