Statistiken erstellen



  • Wie gesagt, steht da oben aber hier bitte noch einmal:

    SELECT COUNT(Hersteller) as Anzahl, Datum 
    FROM Tabelle 
    WHERE Hersteller = 'Sony' 
    AND Datum BETWEEN '01.01.2005' AND '31.12.2005' 
    GROUP BY Datum
    ORDER BY Datum ASC
    


  • Dann sollte das funktionieren... Auf welche DB läßt Du das los?

    Kannst auch mal versuchen ein paar Klammerungen vorzunehmen (obwohl das eigentlich nicht das Problem sein sollte...)

    PeterGabel schrieb:

    Wie gesagt, steht da oben aber hier bitte noch einmal:

    SELECT 
    COUNT(Hersteller) as Anzahl,
    Datum 
    FROM Tabelle 
    WHERE (Hersteller = 'Sony') 
    AND (Datum BETWEEN '01.01.2005' AND '31.12.2005') 
    GROUP BY Datum
    ORDER BY Datum ASC
    


  • Nein, hab das mit den Klammern versucht, geht aber auch nicht. Wie gesagt, eswird nur ein Datum angezeigt und die gesamte Anzahl aller Einträge. Könnte es vielleicht auch an den Einstellungen von meinem DBChart liegen???



  • Keine Ahnung, hab ich noch nie verwendet...



  • Laß Dir die Ergebnisse probehalber in einem DBGrid anzeigen oder mal den RecordCount ausgeben.

    Wenn RecordCount = 1 ist, weißt Du schon mal, daß es nicht DBChart ist.
    > 1 -> DBChart prüfen



  • Also ich hab den Kram mal kurz an einem DB-Chart ausprobiert.
    Geht ohne Probleme.

    Das SQL-Kommando dabei war

    select count(*) as Menge,DatumVon
    from ZEITINTERVALLE
    where datumvon >= convert(datetime,'01.02.2006')
    and datumbis < convert(datetime,'01.03.2006')
    and MITARBEITER = 'Sag ich euch nicht'
    group by DATUMVON
    order by DATUMVON

    Horizontale Achse waren die Datumswerte. Vertikale Achse die Menge am jeweiligem Datum. Alles korrekt angezeigt. Machbar ist es also schnell und einfach.



  • Joe_M. schrieb:

    Dann sollte das funktionieren... Auf welche DB läßt Du das los?

    Kannst auch mal versuchen ein paar Klammerungen vorzunehmen (obwohl das eigentlich nicht das Problem sein sollte...)

    PeterGabel schrieb:

    Wie gesagt, steht da oben aber hier bitte noch einmal:

    SELECT 
    COUNT(Hersteller) as Anzahl,
    Datum 
    FROM Tabelle 
    WHERE (Hersteller = 'Sony') 
    AND (Datum BETWEEN '01.01.2005' AND '31.12.2005') 
    GROUP BY Datum
    ORDER BY Datum ASC
    

    Hierbei kann nur EIN Punkt entstehen, da du wahrscheinlich nur EINEN Hersteller namens Sony hast...
    also lass einfach (Hersteller = 'Sony') weg



  • Linnea schrieb:

    Hierbei kann nur EIN Punkt entstehen, da du wahrscheinlich nur EINEN Hersteller namens Sony hast...
    also lass einfach (Hersteller = 'Sony') weg

    ?!? Diesem Gedankengang kann ich im SQL nicht folgen. Es geht nicht darum, wieviele Hersteller vorhanden sind, sondern wieviele unterschiedliche Daten das sind (16.02.2006,17.02.2006).

    ... Hier stand ein fehlerhafter Text.



  • Also es läuft nun. Ich kann euch aber beim besten Willen nicht sagen woren es nun gelegen hat. Ich habe einfach noch mal ein neues Projekt gemacht und alles neu eingegeben. Ich gehe davon aus das ich bei meinem alten Projekt noch etwas stehen gehabt habe was dort nicht reingehört. Jedenfalls läufts jetzt. Ich danke euch alle für die Hilfe.



  • Erst noch mal danke für die Hilfe bei diesem Thema aber mein Problem würde doch noch nicht ganz gelöst was DBChart angeht. Ich kann zwar jetzt die Statistik erstellen mit den Vorgegebenen Werten aber was ist wenn ich an stelle von Datum einen anderen Wert aus meiner Datenbank nehmen will?
    z.B mein Code lautet nun so:

    SELECT COUNT(Hersteller) as Anzahl,
    Datum // Hier möchte ich eine andere Spalte aus meiner Datenbank
    FROM Tabelle 
    WHERE (Hersteller = 'Sony') 
    AND (Datum BETWEEN '01.01.2005' AND '31.12.2005') 
    GROUP BY Datum
    ORDER BY Datum ASC
    

    Hier wird nun die Statistik anhand des Datums erstellt, wenn ich aber kein Datum sondern einen anderen Wert aus der Tabelle haben möchte habe ich es einfach umgeschrieben und so probiert:

    Query1->SQL->Add("SELECT COUNT(Hersteller) as Anzahl,");
    Query1->SQL->Add("Zeit"); 
    Query1->SQL->Add("FROM Tabelle"); 
    Query1->SQL->Add("WHERE (Hersteller = 'Sony')"); 
    Query1->SQL->Add("AND (Datum BETWEEN '01.01.2005' AND '31.12.2005')"); 
    Query1->SQL->Add("GROUP BY Zeit");
    Query1->SQL->Add("ORDER BY Zeit ASC");
    

    das geht aber nicht da in meinem DBChart die die Werte die Angezeigt werden ja fest zugeordnet sind mit "Anzahl" und Datum". Da der Wert Datum ja jetzt nicht mehr vorhanden ist kommt ein fehler.

    Also wie mache ich es das mein DBChart auch die neuen Werte übernimmt oder kann ich an stelle von "Datum" auch eine Variable nehmen die ich immer neu zuordne? Wenn ja, wie?



  • Du kannst den Feldern auch andere Namen geben. So wie Du es bei Anzahl gemacht hast.

    SELECT COUNT(Hersteller)  AS XAchse,
    Datum AS YAchse
    FROM Tabelle 
    ...
    

    So hättest Du immer die Felder XAchse und YAchse zur Auswahl und kannst die echten Felder dahinter beliebig austauschen.


Anmelden zum Antworten