Hallo, ich habe zwei SQL-Abfragen über ein UNION zusammengefasst.
Nun muss die Ausgabe des Ergebnis jedoch immer in einer vorgegebenen Reihenfolge erfolgen (A_B_C). Im Moment jedoch ist die Reihenfolge immer so, dass das kleinste Ergebnis dieser drei zuerst und dann gefolgt vom nächst kleineren Ergebnis usw. erfolgt.
Da ich ein group by verwende weiss ich nicht, wie ich die Reihenfolge der Ausgabe vorgeben bzw. sortieren kann. Die Ausgabe erfolgt also nach der Verarbeitungsgeschwindigkeit.
SELECT count([Spalte]) as A_B_C
FROM [SERVER].[Tabelle].[dbo].[Spalte]
where ISNUMERIC(Spalte) <> 1
and (Spalte = 1)
AND (Date >= DATEADD(day, DATEDIFF(day, 0, CURRENT_TIMESTAMP), 0)) AND
(Date < DATEADD(day, DATEDIFF(day, 0, CURRENT_TIMESTAMP), 1))
union
SELECT count([Spalte])
FROM [Server].[Tabelle].[dbo].[Spalte]
where (Spalte = 1 or Spalte = 2)
AND (Time >= DATEADD(day, DATEDIFF(day, 0, CURRENT_TIMESTAMP), 0)) AND
(Time < DATEADD(day, DATEDIFF(day, 0, CURRENT_TIMESTAMP), 1))
group by Spalte
Nun muss die Ausgabe des Ergebnis jedoch immer in einer vorgegebenen Reihenfolge erfolgen (A_B_C). Im Moment jedoch ist die Reihenfolge immer so, dass das kleinste Ergebnis dieser drei zuerst und dann gefolgt vom nächst kleineren Ergebnis usw. erfolgt.
Da ich ein group by verwende weiss ich nicht, wie ich die Reihenfolge der Ausgabe vorgeben bzw. sortieren kann. Die Ausgabe erfolgt also nach der Verarbeitungsgeschwindigkeit.
SELECT count([Spalte]) as A_B_C
FROM [SERVER].[Tabelle].[dbo].[Spalte]
where ISNUMERIC(Spalte) <> 1
and (Spalte = 1)
AND (Date >= DATEADD(day, DATEDIFF(day, 0, CURRENT_TIMESTAMP), 0)) AND
(Date < DATEADD(day, DATEDIFF(day, 0, CURRENT_TIMESTAMP), 1))
union
SELECT count([Spalte])
FROM [Server].[Tabelle].[dbo].[Spalte]
where (Spalte = 1 or Spalte = 2)
AND (Time >= DATEADD(day, DATEDIFF(day, 0, CURRENT_TIMESTAMP), 0)) AND
(Time < DATEADD(day, DATEDIFF(day, 0, CURRENT_TIMESTAMP), 1))
group by Spalte
Comment