"Group by" inline realisieren

Mirko Böstro

Benutzer
Beiträge
12
Hallo Leute,

bin gerade dabei, mit "jqgrid" zu programmieren. Leider hab ich ein Problem mit den Filtern.
Bei meinem SQL kann ich nur auf der jeweils aktuellen Seite sortieren, es wird aber nicht der komplette Datensatz (z.B. 35 Seiten) betrachtet.

Ich hoffe, Ihr könnt mir beim SQL helfen.
Z.B. soll nach "efz" sortiert werden.

SELECT *
FROM (
SELECT ROW_NUMBER() OVER(ORDER BY dbo.TB_EFZlog.id) AS rownumber,
dbo.TB_EFZlog.id AS id,
dbo.TB_EFZlog.datum as datum,
dbo.TB_EFZlog.time as time,
dbo.TB_EFZlog.efz as efz,
dbo.TB_EFZlog.fehlernrummer,
dbo.TB_EFZlog.weg,
dbo.TB_EFZ_Meldungen.Meldung,
dbo.TB_EFZ_Meldungen.Ursache
FROM dbo.TB_EFZlog INNER JOIN dbo.TB_EFZ_Meldungen
ON dbo.TB_EFZlog.fehlernrummer = dbo.TB_EFZ_Meldungen.ErrNr
AND dbo.TB_EFZlog.error = dbo.TB_EFZ_Meldungen.FW
and dbo.TB_EFZlog.error = 'true'
and dbo.TB_EFZlog.fehlernrummer > '0'
GROUP BY dbo.TB_EFZlog.datum,
dbo.TB_EFZlog.time,
dbo.TB_EFZlog.efz,
dbo.TB_EFZlog.weg,
dbo.TB_EFZ_Meldungen.Meldung,
dbo.TB_EFZ_Meldungen.Ursache,
dbo.TB_EFZlog.error,
dbo.TB_EFZlog.id,
dbo.TB_EFZlog.fehlernrummer
order by efz) as somex
WHERE rownumber >= (1)*15-(15-1)
AND rownumber <=(1)*15
ORDER BY 1 asc
 
Werbung:
Zunächst einmal, SQL kennt keine Seiten. Du musst das schon etwas erläutern. Mir ist auch nicht klar was jetzt "nicht funktioniert", gibt es eine Fehlermeldung? Ist das Ergebnis falsch sortiert?

Das ORDER BY efz im Subselect ist syntaktisch falsch, das muss auf jeden Fall da weg. Du willst vermutlich ROW_NUMBER() OVER(ORDER BY dbo.TB_EFZlog.id) durch ROW_NUMBER() OVER(ORDER BY dbo.TB_EFZlog.efz) ersetzen.
 
Zurück
Oben