1. Willkommen im Forum für alle Datenbanken! Registriere Dich kostenlos und diskutiere über DBs wie Mysql, MariaDB, Oracle, Sql-Server, Postgres, Access uvm
    Information ausblenden

"Group by" inline realisieren

Dieses Thema im Forum "Microsoft SQL Server" wurde erstellt von Mirko Böstro, 13 Januar 2019.

  1. Mirko Böstro

    Mirko Böstro Benutzer

    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
     
  2. ukulele

    ukulele Datenbank-Guru

    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.
     
Die Seite wird geladen...

Diese Seite empfehlen

  1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden