Es müssen einige Spalten wie Jahre, Wochen, Schweregrad, Alarme und die gleichen Alarme wie zuvor angezeigt werden, nur gefiltert. Wie füge ich die letzte Spalte hinzu, die dieselbe wie vorher ist, nur mehr gefiltert?SQL Wie zeigt und gruppiert man zwei gleiche Spalten, von denen eine mehr gefiltert wird?
Beispiel:
SELECT
CAST(DATEPART(yy, rSTA.FIRSTOCCURRENCEDAY) AS VARCHAR) AS YEAR,
CAST(DATEPART(wk, rSTA.FIRSTOCCURRENCEDAY) AS VARCHAR) AS MONTH,
rSEV.NAME AS SEVERITY,
COUNT(rSTA.ALARMIDKEY) AS ALARMS
FROM
REPORTER.reporter.REPORTER_STATUS rSTA
INNER JOIN
REPORTER.reporter.REP_SEVERITY_TYPES rSEV
ON
rSTA.ORIGINALSEVERITY = rSEV.SEVERITY
WHERE
rSTA.FIRSTOCCURRENCEDAY > DATEADD(week, -10, GETDATE())
AND
rSEV.NAME != 'Clear'
GROUP BY
DATEPART(yy, rSTA.FIRSTOCCURRENCEDAY),
DATEPART(wk, rSTA.FIRSTOCCURRENCEDAY),
rSEV.NAME
ORDER BY
DATEPART(yy, rSTA.FIRSTOCCURRENCEDAY) DESC,
DATEPART(wk, rSTA.FIRSTOCCURRENCEDAY) DESC
Diese Abfrage richtig erste 4 Spalten erzeugt, Anbringen Bild: ALARMS
Die fünfte Spalte die gleichen wie ALARM sein sollte, aber mit der Bedingung:
SELECT ALARMIDKEY AS ALARMS_CC FROM REPORTER.reporter.REPORTER_STATUS WHERE
(MAINTMODECRONTAB != 'Y'
AND SUPPRESSESCL < 4
AND SPMAUTO != 1
AND ORIGINALSEVERITY > 0)
AND ((AIWAVER = 3 AND EVENTACTOR = 1)
OR
((AIWAVER < 3 OR AIWAVER IS NULL)
AND ((CONTROLCENTREVIEW = 1
AND ORIGINALSEVERITY = 5)
OR (CONTROLCENTREVIEW = 2)
OR (ALERTGROUP = 'CHECKLIST')
)
)
)
Jetzt frage ich mich, wie man diese Bedingung in die (erste) Hauptabfrage einfügt und gruppiert, um korrekte Daten zu erzeugen. Für jedes Jahr, Woche und Schweregrad zeigen Alarme und AlarmeCC (gleiche Spalte, nur unterschiedliche Bedingungen). Ich hoffe, dass es so aussehen würde:
Hoffe es macht es klar, was ich erreichen will. Wäre toll, wenn die Art und Weise, dies zu erreichen, mehr optimiert wäre. Vielleicht ist JOIN möglich?
Sind Sie sicher, dass Sie benötigen Antworten auf zwei verschiedene Datenbanken? – Michas
Dies ist die gleiche Datenbank, Jahr, Woche und Alarme befinden sich in der gleichen Tabelle. Der Schweregrad wird einer anderen Tabelle entnommen. – Robbac
Sie haben die Frage sowohl mit Microsoft SQL Server als auch mit MySQL markiert. Dies sind zwei verschiedene relationale Datenbank-Management-Systeme. Brauchen Sie eine Antwort für beide? – Michas