Jeg har følgende kode: $sql_red = "SELECT t1.player_teamid, Sum(t1.type * 0.5) AS totalred, t2.holdnavn FROM bookings AS t1, tilmelding AS t2 WHERE t1.player_teamid = t2.teamid AND t1.type = '2' AND t1.season = $season_active GROUP BY player_teamid ORDER BY totalred DESC LIMIT 2"; $result_red = mysql_query($sql_red) or die(mysql_error()); while($row_red = mysql_fetch_array($result_red)){; ?> <tr> <td><?=$row_red['holdnavn']?></td> <td class="stilling" align="center"><? printf("%d", $row_red['totalred']);?></td> </tr> <tr> <?php } ?>
I bookings table har jeg 2 hold som har bookings med type=2, det ene hold har 3 entries med type= 2, og det andet hold har 1 entry med type=2.
Men min query returnerer: Flying Ducks 6 Team Jimbo 1
Hvilket i stedet skulle være: Flying Ducks 3 <------- Team Jimbo 1
jeg ganger jo med 0.5 i min Sum(t1.type * 0.5)
Hvad er problemet her?
Kan man ikke køre sum() på t1.type INDEN man har sat t1.type= '2' ??
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
SQL-forespørgsel: SELECT t1.player_teamid, Sum( t1.type ) AS totalred, t2.holdnavn FROM bookings AS t1, tilmelding AS t2 WHERE t1.player_teamid = t2.teamid AND t1.type = '2' AND t1.season =29 GROUP BY t1.player_teamid ORDER BY totalred DESC LIMIT 2
Giver: player_teamid totalred holdnavn 928659 12 Flying Ducks 930812 2 Team Jimbo
Det er jo helt sort! Den nederste på 2 er god nok, da Team Jimbo har 1 rødt kort, men Flying Ducks har 3 røde kort - hvordan kan den summe 3*2 til 12??
Her er lige et breakdown, da jeg ikke er kommet videre:
I min tabel "tilmelding" har jeg de enkelte hold flere gange, men med forskellige season_tilmeld (den jeg skal bruge er season_tilmeld=29).
I min bookings har jeg type= 1 eller 2 (1=gult kort, 2=rødt kort)
Jeg har player_teamid i bookings, og teamid i tilmelding som skal joines før jeg kan trække holdnavnet ud fra min tilmelding tabel.
Men det går galt når jeg forsøger at joine dem - nogle der er hardcore til join funktioner som kan forklare mig hvad jeg gør galt, og hvordan det skal gøres i stedet?
$sql_red = "SELECT t1.player_teamid, COUNT(t1.type) AS totalred, t2.holdnavn FROM bookings AS t1, tilmelding AS t2 WHERE t2.season_tilmeld = 29 AND t1.player_teamid = t2.teamid AND t1.type = '2' AND t1.season = $season_active GROUP BY t1.player_teamid ORDER BY totalred DESC LIMIT 2";
manglede at sætte min condition t2.season_tilmeld = 29, og nu "Counter" jeg bare felter hvor type=2 i stedet.. virker også mere logisk.
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.