Announcement

Collapse
No announcement yet.

SQL Abfrage mit while

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • #16
    Zitat aus der 2008er Hilfe
    Syntax
    Ranking Window Functions
    < OVER_CLAUSE > :: =
    OVER ( [ PARTITION BY value_expression , ... [ n ] ]
    <ORDER BY_Clause> )

    Aggregate Window Functions
    < OVER_CLAUSE > :: =
    OVER ( [ PARTITION BY value_expression , ... [ n ] ] )

    ORDER BY steht da nur bei Ranking Functions und ist bei bei Aggregat Funktionen (wie SUM) explizit nicht genannt.

    Comment


    • #17
      Danke - bin auch gerade am Internet durchsuchen - hier ist die einstimmige Meinung, dass es nur ab SQL2012 mit order by funkt!

      Hmm - kennst du noch eine andere Lösung?

      Ich habe auf einem anderen Forum was gefunden - aber bekomm das nicht umgebaut
      http://stackoverflow.com/questions/3...tax-near-order
      Zuletzt editiert von ADJUD; 06.02.2017, 13:08.

      Comment


      • #18
        Originally posted by Ralf Jansen View Post
        Zitat aus der 2008er Hilfe

        ORDER BY steht da nur bei Ranking Functions und ist bei bei Aggregat Funktionen (wie SUM) explizit nicht genannt.
        Sorry, da habe ich nicht genau genug hingeschaut.
        Ich bin überrascht, Oracle macht das seit 20 ca Jahren.

        @TE: Wenn es emuliert werden muss, stellt sich die Frage, ob es noch einen Geschwindigkeitsvorteil bringt gegenüber dem Reportsystem. Wäre also die Frage, ob sich diese Klimmzüge lohnen.
        Gruß, defo

        Comment


        • #19
          Danke an Euch beiden.

          Werde wohl erstmal den Weg über Crystal gehen!

          Es hat mir keine Ruhe gelassen!

          Aber jetzt habe ich es !

          select t5.* from (
          select t3.DocNum, t1.Quantity, SUM(t2.Quantity) as SUMME
          from DLN1 t1, DLN1 t2, ODLN t3, ODLN t4
          where t2.DocEntry <= t1.DocEntry and t1.LineStatus = 'O' and t1.ItemCode = 'EP' and t2.LineStatus = 'O' and t2.ItemCode = 'EP'
          and t2.DocEntry = t4.DocEntry and t1.DocEntry = t3.DocEntry
          and t3.DocDate > '2016-02-01 00:00:00.000' and t3.CardCode = 11048 and t4.DocDate > '2016-02-01 00:00:00.000' and t4.CardCode = 11048
          group by t1.ItemCode, t1.LineStatus, t1.Quantity, t3.DocNum) t5
          where t5.SUMME < 35


          Danke nochmals!!!
          Zuletzt editiert von ADJUD; 06.02.2017, 15:40.

          Comment


          • #20
            Habe nun auf einer VM Dein Statement mit SUM/OVER/ORDER BY getestet - da läuft es!

            Nochmals Danke - so kann ich es in der nächsten Version umbauen - wieder was dazu gelernt!

            Comment


            • #21
              Originally posted by ADJUD View Post
              Habe nun auf einer VM Dein Statement mit SUM/OVER/ORDER BY getestet - da läuft es!
              Das war von Ralph. Aber die Funktionen sind ab und zu sehr hilfreich. Es lohnt sich, die vielen Möglichkeiten damit mal anzusehen, dann hat man es im Hinterkopf, wenn es mal soweit ist. Nicht so ein Brainfuck wie manchmal mit mit Standard SQL, dazu viel schneller, Ressourcen schonender und kompakter, häufig hat man damit auch die "Notlösung" per Stored Procedure gespart, ebenso wie elende Clientrechnerei (noch Ressourcen schonender).
              Gruß, defo

              Comment


              • #22
                Hattte auch Ralf gemeint;-)

                Ja, über die Jahre sind viele neue (und hlfreiche) Funktionen dazugekommen (z.B. PIVOT,..) !

                Das ist auf jeden Fall wieder so eine Funktion die einiges erleichtert!

                Nochmal Danke!

                Comment

                Working...
                X