Summieren in Join?

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

  • Summieren in Join?

    Hallo,

    ich habe folgende Query:
    PHP-Code:
    SELECT s.lastnames.surname, (YEAR'2009-08-04' ) - YEARs.`birthday` )) - ( RIGHT'2009-08-04') < RIGHTs.`birthday` , ) ) AS agem.name AS mealf.name as forums.regdate AS amountdateap.amount as amount
    FROM 
    `anm2009_singles
    LEFT JOIN anm2009_meals 
    as m ON s.mealid m.id
    LEFT JOIN anm2009_forums 
    as f ON s.forumid f.forumid
    LEFT JOIN anm2009_amount_participations 
    as ap ON (s.id ap.pid AND ap.standoflife 0)
    ORDER BY s.lastnames.surname ASC 
    In der Tabelle "anm2009_amount_participations" stehen die Beträge, die ein Teilnehmer bezahlt hat (kann einer oder mehrere sein). In der Liste möchte ich aber den Teilnehmer nur einmal stehen haben und die amounts sollen summiert sein - für den einen Teilnehmer.

    Wo muss ich da das SUM() einbauen, dass er mir nur die evtl. mehreren amount des einen Teilnehmers summiert?

    Danke,
    maeck

  • #2
    Schau dich mal bei MySQL nach GROUP BY und/oder DISTINCT um ;-) Das sollte dir behilflich sein.
    [COLOR=#000000][COLOR=#0000cc][/COLOR][/COLOR]
    [COLOR=#000000][COLOR=#0000cc][COLOR=black]SQL DISTINCT u. noch im MySQL-Manual[/COLOR]
    MySQL :: MySQL 5.1 Referenzhandbuch :: 12.11.1 Funktionen zur Benutzung in GROUP BY-Klauseln[/COLOR][/COLOR]

    Kommentar


    • #3
      Danke, aber irgendwie bekomm ich das nicht hin.

      Habs jetzt über nen SubSelect gelöst:
      PHP-Code:
       SELECT lastnamesurnameagemealforumamountdateSUMamount ) AS amountSUM
      FROM 
      (

      SELECT s.lastname AS lastnames.surname AS surname, (
      YEAR'2009-08-04' ) - YEARs.`birthday` )
      ) - ( 
      RIGHT'2009-08-04') < RIGHTs.`birthday` , ) ) AS agem.name AS mealf.name AS forums.regdate AS amountdateap.amount AS amount
      FROM anm2009_single 
      AS s
      LEFT JOIN anm2009_meals 
      AS m ON s.mealid m.id
      LEFT JOIN anm2009_forums 
      AS f ON s.forumid f.forumid
      LEFT JOIN anm2009_amount_participations 
      AS ap ON s.id ap.pid
      AND ap.standoflife =)
      ) AS 
      test
      GROUP BY lastname
      surnameagemealforumamountdate 
      Wenn jemand noch einen Verbesserungsvorschlag hat, dann würde ich mich über Rückmeldung freuen.

      Danke,
      maeck

      Kommentar

      Lädt...
      X