Erstens denke ich, dass ich nicht tun kann, was ich ursprünglich gemacht habe, also, wenn es irgendwelche Vorschläge gibt, die sich von einem Fallausdruck entfernen, bin ich dafür offen.Wie bekomme ich mehrere "THEN" -Ergebnisse von einem Case-Ausdruck?
So einfach wie ich es machen kann, hier ist, wie ich es aussehen möchte.
SELECT *
FROM Table_CRR
WHERE (QTR in ('1st Quarter', '2nd Quarter'))
Allerdings mag ich die Filter aus einem einzigen Parameter liefern, so dass, wenn ich wähle:
"1st Quarter" it gives nothing,
"2nd Quarter" returns "1st Quarter",
"3rd Quarter" returns both "1st Quarter" and "2nd Quarter" and
"4th Quarter" returns "3rd Quarter", "2nd Quarter", and "1st Quarter".
Dies ist, was ich habe.
@QuarterSelect VarChar(15)
AS
SET @QuarterSelect = Case
WHEN @QuarterSelect = '4th Quarter' THEN '3rd Quarter'
WHEN @QuarterSelect = '4th Quarter' THEN '2nd Quarter'
WHEN @QuarterSelect = '4th Quarter' THEN '1st Quarter'
WHEN @QuarterSelect = '3rd Quarter' THEN '2nd Quarter'
WHEN @QuarterSelect = '3rd Quarter' THEN '1st Quarter'
WHEN @QuarterSelect = '2nd Quarter' THEN '1st Quarter'
WHEN @QuarterSelect = '1st Quarter' THEN ''
ELSE ''
END
SELECT *
FROM Table_CRR
WHERE (QTR in (@QuarterSelect))
Es endet offensichtlich und gibt mir nur '2. Quartal'. Ich bin sicher, dass es eine elegante Möglichkeit gibt, dies zu tun, ich habe nur Schwierigkeiten, es herauszufinden.
Jede Hilfe oder Vorschläge würden sehr geschätzt werden!
Beispiel von dem, was ich sehen will: Wenn ich den @QuarterSelect Parameter auf ‚3. Quartal‘
gesetzt|Key |Qtr |
---------------------
|772384 |1st Quarter|
|407038 |1st Quarter|
|790033 |1st Quarter|
|188914 |1st Quarter|
|1607947|2nd Quarter|
|1683954|2nd Quarter|
|1607937|2nd Quarter|
|1948397|2nd Quarter|
...
ein CASE-Ausdruck ist skalar, gibt nur ein Ergebnis pro Zeile zurück – Lamak
ist 'QTR' eine Spalte in der Tabelle? oder haben Sie eine Spalte "Datum" in der Tabelle? –
Lamak - Das ist was ich finde. Ich weiß nicht, wie ich das sonst machen soll. vkp - Quartal ist eine VarChar-Spalte in der Tabelle. –