tutorials.de Buch-Aktion 05/2012
ERLEDIGT
JA
ANTWORTEN
5
ZUGRIFFE
335
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Paula Paula ist offline Mitglied Gold
    Registriert seit
    Aug 2003
    Beiträge
    124
    Hallo zusammen,

    ich habe folgende SQL-Abfrage:
    Code sql:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    
    SELECT SUM(count_condition_id) AS sum_cci, YEAR, KW, condition_id
    FROM alarmrankings
    WHERE dienst = 'foobar'
    AND (
         condition_id = 'c706bac2-14ee-71d8-07ec-0a0104150000'
      OR condition_id = 'c7166044-14ee-71d8-07ec-0a0104150000' )
    AND (
         ( KW = '39' AND YEAR = '2006' )
      OR ( KW = '40' AND YEAR = '2006' )
      OR ( KW = '41' AND YEAR = '2006' )
      OR ( KW = '42' AND YEAR = '2006' )
      OR ( KW = '43' AND YEAR = '2006' )
      OR ( KW = '44' AND YEAR = '2006' )
      OR ( KW = '45' AND YEAR = '2006' )
      OR ( KW = '46' AND YEAR = '2006' )
      OR ( KW = '47' AND YEAR = '2006' )
    )
    GROUP BY condition_id, YEAR, KW
    ORDER BY YEAR ASC, KW ASC, condition_id ASC
    Die Abfrage klappt soweit auch. Schlussendlich möchte ich von jeder abgefragten Kalenderwoche eine Anzahl wissen. Falls jedoch in einer Woche kein Eintrag in der Tabelle ist, dann liefert mir MySQL auch nichts. Stattdessen möchte ich jedoch gerne 0 haben. Wie kann ich das umsetzen?

    Die Ausgabe bisher sieht so aus:
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    
    Array
    (
        [c706bac2-14ee-71d8-07ec-0a0104150000] => Array
            (
                [39] => 1271
                [40] => 1494
                [41] => 1820
                [42] => 1634
            )
     
        [c7166044-14ee-71d8-07ec-0a0104150000] => Array
            (
                [39] => 1271
                [40] => 1494
                [41] => 1818
                [42] => 1641
            )
     
    )
    Die fehlenden Wochen sollen aber mit 0 gespeichert werden.
     

  2. #2
    BLOEBAUM BLOEBAUM ist offline Mitglied Gold
    Registriert seit
    Sep 2005
    Ort
    Kreis Herford
    Beiträge
    114
    Hallo Paula,

    eine Datenbank kann dir nur Ergebnisse zurückliefern, die auch aus den Daten der Datenbank ableitbar sind.

    Wenn es , wie in deinem Fall, für bestimmt Wochen keinen Eintrag gib, kannst du mit der einer SQL Abfrage diese variablen Werte auch nicht in einem Schritt darstellen.

    Wenn du den Select in einer anderen Sprache (Java, PHP) integrieren würdest, könntest du dort die fehlende Werte ergänzen.

    Gruß

    Harald
     

  3. #3
    Sparks Sparks ist offline Mitglied Silber
    Registriert seit
    May 2004
    Beiträge
    79
    Hallo Paula,

    falls ein Programm (php o. ä., wie von Harald vorgeschlagen) für Dein Problem nicht zweckmässig sein sollte, könntest Du mal folgendes versuchen. Ich habe hier kein MySQL verfügbar, aber mit einer Gupta-DB (kompatibel zu DB2) funktioniert dieses:
    Code sql:
    1
    
    SELECT IFNULL( SUM(count_condition_id), 0 ) AS ...

    Gruß,
    Sparks
     
    Ich stehe direkt am Abgrund, aber morgen bin ich schon einen Schritt weiter. ;-)

  4. #4
    Paula Paula ist offline Mitglied Gold
    Registriert seit
    Aug 2003
    Beiträge
    124
    Danke schonmal für eure Antworte. Sparks klappt leider nicht. Es kommt aber auch zu keiner Fehlermeldung!

    Ich habe es nun mit einer PHP-Schleife realisiert, aber eine SQL-Lösung wäre mir schon lieber gewesen.
    PHP-Code:
    // nicht vorkommende Kalenderwochen einer condition_id werden mit 0 hinzugefuegt
    foreach( $arr as $cids => $cids_value ) {
        foreach( 
    $getGraphWeeks['weeks'] as $i ) {
            if( empty( 
    $arr[$cids][$i] ) ) {
                
    $arr[$cids][$i] = 0;
            }
        }
        
    ksort$arr[$cids] );
    }
    ksort$arr ); 
     

  5. #5
    Radhad Radhad ist offline Mitglied Diamant
    Registriert seit
    Mar 2003
    Ort
    Wuppertal (NRW)
    Beiträge
    1.917
    Blog-Einträge
    35
    Hast du dir das Ergebnis mal in phpmyadmin angeschaut? Vielleicht gibt es da ja Abweichungen.
     
    Mein neues Projekt: zandman.de - Bericht über den Aufbau einer Entwicklungsumgebung für Test-Driven-Development mit phpUnderControl und dem Aufbau einer Webapplikation mit Zend Framework Version 1.9.x

  6. #6
    Paula Paula ist offline Mitglied Gold
    Registriert seit
    Aug 2003
    Beiträge
    124
    Ich hatte es mir im MySQL Query Browser angeschaut.
     

Ähnliche Themen

  1. Antworten: 2
    Letzter Beitrag: 30.12.10, 13:08
  2. Länge des Response wird nicht richtig zurückgegeben
    Von Johannes7146 im Forum .NET Windows Forms
    Antworten: 2
    Letzter Beitrag: 13.10.09, 09:33
  3. String wird nicht zurückgegeben
    Von maxn im Forum PHP
    Antworten: 6
    Letzter Beitrag: 25.04.08, 09:31
  4. Antworten: 1
    Letzter Beitrag: 12.04.06, 22:36
  5. Antworten: 6
    Letzter Beitrag: 26.12.05, 23:11