Ich habe eine harte Zeit, eine Summe hinzufügen (naja, wirklich ein Unterschied) in einer Spalte, die in einer Tabelle ist, die ich in einer SELECT JOIN-Anweisung erstellt habe. Lassen Sie mich zeigen, was ich (Kurzform), und dann erklären:PHP MySQL Summe Spalte der verbundenen Tabelle pro Zeile Werte
User Name Betting Site Home Team Away Team Wager Odds
Ridge LeoVegas Molde Tromso 1000 2.20
Ridge Nordic Bet Molde Tromso 3000 1.60
Ridge LeoVegas Aalesund Rosenborg 4000 1.30
Simon Comeon Aalesund Rosenborg 2000 1.40
So zeigt diese Tabelle eine Wett Geschichte von einem Benutzer, auf der Website, die Teams beteiligt, Wette und die Chancen des Spiels. Ich hatte diese Tabelle durch eine ziemlich lange Abfrage erstellt, die eine Benutzer-Tabelle, eine Wett-Site-Tabelle, eine Spieltabelle usw. über JOIN/ON kombinierte.
Derzeit haben wir 10 Wett-Websites in unserer Wett-Site-Tabelle, und wir verfolgen/pro Benutzer, was ihre Stellung auf jeder Website ist. So , auf Ridges Profilseite, ich habe auch eine Tabelle:
Betting Site Deposit Bonus Rollover Rollover Remaining Days
LeoVegas 4000 4000 10 ? 30
Nordic Bet 4000 4000 6 ? 30
Comeon 3000 3000 12 ? 90
Dieses Fragezeichen ist, wo ich meine Schwierigkeiten habe. Sie sehen, ich versuche, eine Summe aller Wetten, die in der oberen Tabelle aufgelistet sind, als von der Wettseite und dem Benutzer übereinstimmend zu nehmen. Über die JOIN-Anweisung (und eine $ _GET-Variable) kann ich nur Informationen für einen bestimmten Nutzer und eine bestimmte Wettseite auswählen. Aber ich kann den SUM nicht richtig funktionieren lassen. Dies ist, wie ich es möchte arbeiten:
Die Prolongation Rest ist eine Berechnung des ((Bonus * Rollover) - Summe (Einsätze)) für einen bestimmten Ort.
Ridge Robinson's Status
Betting Site Deposit Bonus Rollover Rollover Remaining Days
LeoVegas 4000 4000 10 35000 (*40000-5000*)30
Nordic Bet 4000 4000 6 21000 (*24000-3000*)30
Comeon 3000 3000 12 36000 (*36000-0*) 90
Dies ist, was ich versucht habe:
SELECT
b.betting_site_name,
b.deposit,
b.bonus,
b.odds,
b.rollover,
b.days,
u.wager,
(SELECT
SUM(wager) AS 'Total Risk'
FROM userbets AS ub
JOIN users AS u ON ub.userid = u.id
JOIN bonuses AS b ON ub.siteid = b.id
WHERE u.id = $id AND betting_site_name='$betsite') AS 'Total Rollover'
FROM bonuses AS b
LEFT JOIN userbets AS u ON u.siteid = b.id
LEFT JOIN users ON u.userid = users.id
WHERE users.id=$id AND betting_site_name='$betsite'
GROUP BY b.id;
aber das Problem ist, dass es unabhängig von der gleichen Überschlagsmenge berechnet, was die Wettseite ist, so sind sie alle die gleiche wie oben Wett-Website von LeoVegas. Weiß jemand, wie ich eine SUMME benutzen kann, um eine Wettseite zu benutzen, die in dieser $ Reihe aufgeführt ist? Ich weiß (na ja, nicht sicher, woher es sonst kommen würde), der Fehler kommt von meiner SUM WHERE-Klausel, aber ich bin mir nicht sicher, wie ich die spezifische Wettsite sonst noch summieren könnte.
Dank
Danke für die Antwort ... leider funktioniert es nicht richtig. Es findet keine korrekten Informationen und ich glaube, das liegt daran, dass die innere select-Abfrage die $ _GET-Variablen von $ id und $ betsite benötigt. Ich versuche zu sehen, ob ich von deiner Logik der 'inneren' Aliase abarbeiten kann, aber ich muss es noch damit arbeiten lassen. –