Announcement

Collapse
No announcement yet.

Eine Summe nach sortierten Werten ?!

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

  • Eine Summe nach sortierten Werten ?!

    Hallo ich habe ein Problem:

    gut:

    select top 5 (intSpalte) from Tabellenname where Saplte1 like 'Wert%' order by Datumsfeld

    böse:

    select top 5 sum(intSpalte) from Tabellenname where Saplte1 like 'Wert%' order by Datumsfeld

    Kurz gesagt: Ich brauche die Summer eins Feldes (eh int) nach Datum geordnet.

    Hat jemand einen Lösungsansatz?

    Danke
    Gruß

  • #2
    Hmm,

    wenn ich das richtig verstanden habe, suchst du so etwas:

    SELECT Top 5 SUM(intSpalte) from Tabellenname where Spalte1 like 'Wert%'
    Group by datumsfeld
    order by Datumsfeld

    Grüße

    Julia

    Comment


    • #3
      Hallo,

      also eine Aggregatfunktion OHNE Gruppierungswert liefert IMMER nur einen Datensatz, in deinem Fall die Summe über alle DS die dem Kriterium Spalte1 like 'Wert%' entsprechen.
      Dein Statement müßte also eher so aussehen:
      [highlight=sql]
      SELECT Top 5 datumsfeld, SUM(intSpalte)
      from Tabellenname
      where Spalte1 like 'Wert%'
      Group by datumsfeld
      order by Datumsfeld
      [/highlight]

      Gruß Falk
      Wenn du denkst du hast alle Bugs gefunden, dann ist das ein Bug in deiner Denksoftware.

      Quellcode ohne ein Mindestmaß an Formatierung sehe ich mir nicht an! Ich leiste keinen Privatsupport per Mail oder PN!

      Comment


      • #4
        Hallo!

        danke für eure postings, aber leider nein.

        Das Ergebnis soll eine Zahl ergeben und nicht (wie in euren Vorschlägen) mehrere Ergebnise liefern.

        Ich denke, das SQL hier (mit einem "Einzeiler") nicht wirklich eine Lösung bietet.

        Natürlich ginge es mit einem Zeiger, aber ich möchte das Script so schmal als möglich halten (es wird von einem C# Prog. aufgerufen).

        Wenns SQL nicht bietet, werde ich es in C#-Code realisieren.

        Vielen Dank
        Gruß

        Comment


        • #5
          Also mir ist immer noch nicht klar, was du eigentlich erreichen willst. Insofern ist es auch schwierig, Hilfe zu leisten. Wenn Du nur das höchste Ergebnis brauchst, kannst du doch immer mit TOP 1 arbeiten.

          Comment


          • #6
            Originally posted by max10 View Post
            ...Das Ergebnis soll eine Zahl ergeben und nicht (wie in euren Vorschlägen) mehrere Ergebnise liefern....

            Sorry, dann erkläre dich besser. Wie willst du ein einzeiliges Ergebnis einer Integersumme nach Datum sortieren? Und was soll top 5 wenn das Ergebnis nur eine Zeile hat?

            Gruß Falk
            Wenn du denkst du hast alle Bugs gefunden, dann ist das ein Bug in deiner Denksoftware.

            Quellcode ohne ein Mindestmaß an Formatierung sehe ich mir nicht an! Ich leiste keinen Privatsupport per Mail oder PN!

            Comment


            • #7
              Hallo!

              Angenommen, ich habe 6 Zeilen in der Tabelle und in intSpalte sind 4 verschiedene Personalnummern (2x 1111, 2x 2222 1x 3333 und 1x 4444)

              Jeder Datensatz besitzt ein anderes Datum.

              Führe ich nun:

              "select top 5 sum(Personalnummer) from Tabelle where inhalt like 'Wert%' group by Datum order by Datum"

              aus, dann bekomme ich (je nachdem, wieviele Datensätze der einzelnen Personalnummer bezüglich Datum betroffen sind) 1-6 Ergebniszeilen in denen kulminiert die Ergebnise enthalten sind.

              Ich brauche aber EINE Summe, also die 1-6 Ergebnise aus obiger Abfrage in einer Summe addiert.

              Also eigentlich:
              "select top 5 sum(sum(Personalnummer)) from Tabelle where inhalt like 'Wert%' group by Datum order by Datum"

              Ich hoffe mich einigermaßen klar ausgedrückt zu haben.

              LG

              Comment

              Working...
              X