Hallo miteinander,
ich bin neu hier im Forum und hoffe, ihr könnt mir bei einer Abfrage weiterhelfen.
Die folgende Abfrage liefert mir als Ergebnis zu einer ID drei Zeilen mit Ergebnissen:
ID........................WAF_MEAS_TYPE............THK_CEN............ WAF_FLAG............OPERATION
MW2034806055...SPC_MS..........................885,36......................U..................................2180
MW2034806055...TST..................................885,32......................U..................................2185
MW2034806055...TST..................................885,32......................U..................................2470
Ich möchte allerdings pro ID nur eine Zeile angezeigt bekommen. Dazu habe ich den Code folgendermaßen geändert:
Als Ergebnis erhalte ich wie gewünscht eine Zeile für die ID:
ID........................WAF_MEAS_TYPE............THK_CEN............
MW2034806055...TST ..........................885,36
Allerdings erhalte ich nicht das von mir gewünschte Ergebnis.Ich bin bislang davon ausgegangen, dass die Ausdrücke max(case when...) der Reihe nach abarbeitet und sobald eine Übereinstimmung vorliegt, diese abbricht und den entsprechenden Wert ausgibt. Das heißt, als Ergebnis erwarte ich:
ID.........................WAF_MEAS_TYPE............THK_CEN............
MW2034806055...SPC_MS..........................885,36
Wie müsste ich die Abfrage ändern, um das gewünschte Ergebnis zu erhalten?
Gruß, Matthias
ich bin neu hier im Forum und hoffe, ihr könnt mir bei einer Abfrage weiterhelfen.
Die folgende Abfrage liefert mir als Ergebnis zu einer ID drei Zeilen mit Ergebnissen:
PHP:
SELECT distinct
w.ID
,wavw.waf_meas_Type
,wavw.Thk_Cen
,wavw.WAF_FLAG
,wavl.operation
FROM
LOADER.WAFERS w
,LOADER.LWWAV_WAFERS wavw
,LOADER.LWWAV_LOTS wavl
WHERE 1=1
and w.id IN ('MW2034806055')
and w.sid = wavw.waf_sid(+)
and wavw.lothis_sid = wavl.LOTHIS_SID(+)
ID........................WAF_MEAS_TYPE............THK_CEN............ WAF_FLAG............OPERATION
MW2034806055...SPC_MS..........................885,36......................U..................................2180
MW2034806055...TST..................................885,32......................U..................................2185
MW2034806055...TST..................................885,32......................U..................................2470
Ich möchte allerdings pro ID nur eine Zeile angezeigt bekommen. Dazu habe ich den Code folgendermaßen geändert:
PHP:
SELECT distinct
w.ID WaferId
,max( case when wavw.WAF_FLAG in ('U','F') and wavl.operation = '2180' and wavw.Waf_Meas_Type NOT IN ('INTERPOL','TST') then wavw.waf_meas_Type else
case when wavl.operation = '2180' and wavw.Waf_Meas_Type IN 'TST' then wavw.waf_meas_Type else
case when wavw.WAF_FLAG in ('U','L') and wavl.operation = '2185' and wavw.Waf_Meas_Type IN 'TST' then wavw.waf_meas_Type else null end end end) Meastype
,max( case when wavw.WAF_FLAG in ('U','F') and wavl.operation = '2180' and wavw.Waf_Meas_Type NOT IN ('INTERPOL','TST') then wavw.Thk_Cen else
case when wavl.operation = '2180' and wavw.Waf_Meas_Type IN 'TST' then wavw.Thk_Cen else
case when wavw.WAF_FLAG in ('U','L') and wavl.operation = '2185' and wavw.Waf_Meas_Type IN 'TST' then wavw.Thk_Cen else null end end end) Thk_Cen
FROM
LOADER.WAFERS w
,LOADER.LWWAV_WAFERS wavw
,LOADER.LWWAV_LOTS wavl
WHERE 1=1
and w.id IN ('MW2034806055')
and w.sid = wavw.waf_sid(+)
and wavw.lothis_sid = wavl.LOTHIS_SID(+)
group by
w.ID
Als Ergebnis erhalte ich wie gewünscht eine Zeile für die ID:
ID........................WAF_MEAS_TYPE............THK_CEN............
MW2034806055...TST ..........................885,36
Allerdings erhalte ich nicht das von mir gewünschte Ergebnis.Ich bin bislang davon ausgegangen, dass die Ausdrücke max(case when...) der Reihe nach abarbeitet und sobald eine Übereinstimmung vorliegt, diese abbricht und den entsprechenden Wert ausgibt. Das heißt, als Ergebnis erwarte ich:
ID.........................WAF_MEAS_TYPE............THK_CEN............
MW2034806055...SPC_MS..........................885,36
Wie müsste ich die Abfrage ändern, um das gewünschte Ergebnis zu erhalten?
Gruß, Matthias
Zuletzt bearbeitet: