ERLEDIGT
JA
JA
ANTWORTEN
5
5
ZUGRIFFE
465
465
EMPFEHLEN
-
19.11.08 20:45 #1
Hallo,
ich komme nicht weiter.
Ich möchte folgende DB-Abfrage machen:
wobei $mein_geld vorgegeben wird (z. B. 345,67) und gesamt und anteil TabellenspaltenPHP-Code:SELECT SUM(gesamt*anteil*2) AS geld FROM nutzer WHERE geld >= '$mein_geld'
der Datenbank sind. Alle Werte sind Dezimalzahlen (z. B. "2.50").
Die Abfrage ergibt einen Fehler.
Ich denke, das Problem ist, dass ich das gerade erst innerhalb der Abfrage erstellte "geld"
gleich mit einem vorgegebenen Wert ("$mein_geld") vergleiche, oder?!
Aber wie kann ich sonst abfragen, wie viele andere Nutzer mehr "geld" haben, als ich
(sprich der zu vergleichende Nutzer)?
-
20.11.08 00:14 #2
- Registriert seit
- Jun 2007
- Ort
- Passau (Niederbayern)
- Beiträge
- 1.394
Hallo,
welchen? Tut mir Leid, ich kann nicht Gedanken lesen
Also an deiner Query an sich, so wie du die gepostet hast, ist an sich nichts falsch. Schreib doch bitte mal die PHP Zeile, in der du die Query wegschickst oder in eine Variable speicherst.
Wenn ich dich richtig verstehe, dann dürfte dir aber das HAVING besser helfen als dein WHERE.
Mehr nach deiner Antwort
Gruß
BratkartoffelGeändert von Bratkartoffel (20.11.08 um 00:16 Uhr)
Über eine gute Bewertung freut sich jeder ;)
Bitte erledigte Threads als "Erledigt" markieren.
"Though a program be but three lines long, someday it will have to be maintained.''
-- Geoffrey James, "The Tao of Programming"
-
Wie waere es denn, wenn du es einfach vorher in einer variablen querry brechnest und sie dann alst String als Querry uebergibst.
Das ist ja eigentlich fast nochmal und warum sollte man auch nicht."Wer glaubt, etwas zu sein, hat aufgehört, etwas zu werden."
Sokrates (468 - 399 v.Chr.)
Read my Blog!
-
20.11.08 12:23 #4
Danke erstmal, ich habe die Abfrage umgebastelt, aber sie funktioniert noch immer nicht.
Also zur Übersicht:
Ich habe eine Tabelle "nutzer" mit den Feldern
+--------+---------------+--------------+
| id | gesamt | anteil |
+--------+---------------+--------------+
| 1 | 66.00 | 0.70 |
+--------+---------------+--------------+
| 2 | 100.00 | 2.50 |
+--------+---------------+--------------+
| 3 | 200.00 | 0.80 |
+--------+---------------+--------------+
Das ergibt die MeldungPHP-Code:$mein_wert = "92.40"; // 66,00 * 0.7 * 2
$res_vergleich = mysql_query("SELECT gesamt, anteil FROM nutzer HAVING SUM(gesamt*anteil*2) >= '$mein_wert'");
$platz = mysql_num_rows($res_vergleich);
$vergleich = mysql_fetch_array($res_vergleich);
"Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource"
-
1. SUM() wie alle Aggregat-Funktionen werden durch HAVING eingeschränkt
2. HAVING ist nur zulässig, wenn es auch Gruppierungen (GROUP BY) gibt.
3. Ist das glaube ich alles nicht das, was du eigentlich willst.
4. Wenn du dein eigentliches Problem beschreiben würdest, könnte man dir schneller helfen.
5. Nehme ich jetzt einfach mal an, dass du wissen willst, für welche Benutzer gilt, dass gesamt * anteil * 2 > Betrag ist. Ein SUM hat dann da überhaupt nichts zu suchen. (Beispiel: Betrag = 100.00)
Code sql:1 2 3
SELECT * FROM nutzer WHERE gesamt*anteil*2 >= 100.00;
Versuche nie Probleme zu lösen, von deren Existenz du noch gar nichts weißt!
-
20.11.08 12:51 #6
Genau das wars. Ich hätte nie gedacht, wie einfach es sein kann.
Mir war nicht bewusst, dass man in der WHERE Klausel einfach Berechnungen durchführen darf.
VIELEN DANK ALLEN ANTWORTERN!
Ähnliche Themen
-
[Vb6] Überlauf bei Multiplikation
Von nicok im Forum Visual Basic 6.0Antworten: 1Letzter Beitrag: 02.10.08, 18:02 -
Rekursive Multiplikation
Von FiselM im Forum JavaAntworten: 16Letzter Beitrag: 05.01.08, 20:19 -
integrierter Kalender von Mozilla/Thunderbird austauschen gegen Sunbird
Von egilb im Forum Internet, DSL & FlatrateAntworten: 0Letzter Beitrag: 16.04.07, 18:36 -
Ist die Multiplikation so richtig?
Von siros im Forum PHPAntworten: 3Letzter Beitrag: 05.12.05, 12:18 -
FlexGrid mit integrierter CheckBox
Von Rosikopter im Forum Visual Basic 6.0Antworten: 2Letzter Beitrag: 28.10.03, 09:57





Zitieren


Login





