German SQL Datenbank einlesen, sortieren und zusammenzählen

Discussion in 'German Forum' started by Wolli013, May 27, 2015.

  1. Wolli013

    Wolli013 Active Member Licensed User

    Hallo liebe Forum Mitglieder,
    wie kann ich es am besten lösen, wenn ich eine SQL Datenbank habe und der Reihe nach
    die Hosen einlese und anzeigen lasse, so dass immer nur die gleichen Farben als ein Satz angezeigt wird?

    So werden sie der Reihe nach gelesen und angezeigt.

    Hose Blau – Stückzahl 2
    Hose Grün – Stückzahl 7
    Hose Blau – Stückzahl 2
    Hose Blau – Stückzahl 8
    Hose Grün – Stückzahl 3
    Hose Gelb – Stückzahl 12
    Hose Blau – Stückzahl 6
    Hose Blau – Stückzahl 9

    Ich hätte es aber gerne so

    Hose Blau – Stückzahl 27
    Hose Grün – Stückzahl 10
    Hose Gelb – Stückzahl 12

    Wie bekommt man es am besten hin?
    Ist ein Arry hier die beste Lösung und wenn ja wie?
     
  2. klaus

    klaus Expert Licensed User

    Wie sind die Spalten definiert ?
    Denn ja nach dem wie die Spalten defniert sind ist die Lösung anders.
    Sind Hose Blau zwei Spalten oder nur eine ?
    Ist Stückzahl der Spaltenname oder in der Spalt enthalten.

    Beispiel:
    Angenommen dass es folgende Spalten gibt : Artikel (Hose), Farbe (Blau), Stückzahl (9)
    Die Abfrage könnte dann so aussehen.
    Code:
    Dim i As Int
    Dim Artikel = "Hose" As String
    Dim Query As String
    Dim Curs As Cursor

    ' Abfrage der verschiedenen Farben
    Query = "SELECT DISTINCT Farbe FROM " & SQLTabelName & " WHERE Artikel = '" & Artikel & "'"
    Curs = SQL1.ExecQuery(Query)
    Dim Farbe(Curs.RowCount) As String
    Dim Anzahl(Curs.RowCount) As Int
    For i = 0 To Curs.RowCount - 1
        Curs.Position = i
        Farbe(i) = Curs.GetString(
    "Farbe")
        
    ' Abfrage der Summe der Stückzahl von Hosen mit der gegebenen Farbe
        Anzahl(i) = SQL1.ExecQuerySingleResult2("SELECT sum(Stückzahl) FROM " & SQLTabelName & " WHERE Artikel = ? AND Farbe = ? "Array As String(Artikel, Farbe(i)))
    Next
     
    Wolli013 likes this.
  3. Wolli013

    Wolli013 Active Member Licensed User

    Danke erstmal für deine Antwort

    Sind Hose Blau zwei Spalten oder nur eine ? = Nur 1 Spalte


    Ist Stückzahl der Spaltenname oder in der Spalt enthalten. = 1 Neue Spalte

    Beispiel:
    HosenFarbe= Cursor1.GetString("Hosenfarbe")
    HosenAnzahl= Cursor1.GetString("Anzahl")
     
  4. klaus

    klaus Expert Licensed User

    Ich verstehe Deine Antwort nicht ganz.
    Hast Du eine Spalte "Hosenfarbe" ?
    Du kannst ja das Beispiel das Ich gepostet habe an Deine Bedingungen anpassen.
     
  5. Wolli013

    Wolli013 Active Member Licensed User

    Genau 1 Spalte Farbe und 1 Spalte Anzahl es sind immer nur Hosen Als Artikel

    Ich werde dein Beispiel an meinen Bedürfnissen anpassen, vielen dank für deine Hilfe.
     
  6. MaFu

    MaFu Well-Known Member Licensed User

    Einfach als SQL Abfrage:
    "SELECT Farbe,SUM(Anzahl) AS Summe FROM " & tabelle & " GROUP BY Farbe"
     
    Wolli013 likes this.
  7. Wolli013

    Wolli013 Active Member Licensed User

    cool
    geht das Zusammenrechnen auch mit Stunden und Minuten
    z.B. 4:45 + 5:58
     
  8. MaFu

    MaFu Well-Known Member Licensed User

    Nö. Für Zeitangaben gibt es keine Summenfunktion in SQL.
     
  9. Wolli013

    Wolli013 Active Member Licensed User

    Danke für die Info
     
Loading...
  1. This site uses cookies to help personalise content, tailor your experience and to keep you logged in if you register.
    By continuing to use this site, you are consenting to our use of cookies.
    Dismiss Notice