Count, Group By

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Count, Group By

    Hallo Leute,

    ich stehe gerade auf dem schlauch. Ich bin dabei einen Messenger zu bauen. Nun wollte ich eine gesamte Status abfragen, in Welchen Ordner wieviele Mails liegen und wieviele Davon dann wiederum ungelesen sind. Viellicht kann mir jemand auf die Sprünge helfen, die die Ausgabe ist nicht wie gewünscht.

    Code:
    SELECT messenger_messages_inbox.msg_folder_id, 
      msg_folder_name, COUNT(msg_id) AS messages, 
      COUNT(msg_read) AS unread
    FROM   messenger_messages_inbox
    INNER  JOIN messenger_folder 
      ON messenger_messages_inbox.msg_folder_id = messenger_folder.user_folder_id
    WHERE  msg_to_user_id =  '1'
    GROUP  BY messenger_messages_inbox.msg_folder_id,
    messenger_messages_inbox.msg_read
    ORDER  BY messenger_messages_inbox.msg_folder_id
    Die Augabe sieht wie folgt aus:
    Code:
    msg_folder_id  msg_folder_name  messages  unread  
    1 Posteingang 1 1 
    1 Posteingang 1493 1493 
    2 GastMails 10 10 
    3 Test Ordner 8 8 
    4 Server 9 9
    Ich würde aber gern die Ausgabe so habe:
    Code:
    msg_folder_id  msg_folder_name  messages  unread  
    1 Posteingang 1493 1 
    2 GastMails 10 0
    3 Test Ordner 8 0 
    4 Server 9 0
    Wäre nett wenn mir jemand helfen könnte, ich blicke es langsam nicht mehr :-)

    GruZZ GriZZ
    Zuletzt geändert von mrhappiness; 14.10.2004, 15:10.

  • #2
    warum gruppierst du nach msg_read?

    und warum kannst du deinen code nicht so umbrechen, dass ich keinen 28" monitor brauche?
    Ich denke, also bin ich. - Einige sind trotzdem...

    Kommentar


    • #3
      Hi,

      Die Gruppierung, nach msg_read hab ich später mit reingenommen, da sonst bei beiden COUNT's natürlich auch die selben Ergebnisse kommen.

      Das mit dem Scrollen tut mir leid, ich wollte es nachträglich ändern, aber ich hab ja kein Edit-Recht mehr.

      Kommentar


      • #4
        du könntest aus dem letzten count ein SUM(IF(msg_read = 1, 1, 0)) oder so machen
        Ich denke, also bin ich. - Einige sind trotzdem...

        Kommentar


        • #5
          Jo Danke, habs jetzt so Eingebaut angepasst und es funktioniert.

          Code:
          SELECT messenger_messages_inbox.msg_folder_id, msg_folder_name, 
          COUNT( msg_id ) AS messages, SUM( IF ( msg_read = '0', 1, 0 )  ) AS unread
          
          FROM messenger_messages_inbox
          
          INNER JOIN messenger_folder ON messenger_messages_inbox.msg_folder_id = messenger_folder.user_folder_id
          
          WHERE msg_to_user_id = '1'
          
          GROUP BY messenger_messages_inbox.msg_folder_id
          
          ORDER BY messenger_messages_inbox.msg_folder_id LIMIT 0 , 30
          OffTopic:
          Könnte ich evtl. mein Self-Edit wiederbekommen ? Das wäre nett.


          GruZZ GriZZ

          Kommentar

          Lädt...
          X