Hallo zusammen,
trotz Forensuche etc. kam ich auf keine Lösung bei folgendem Problem:
Also eine recht komplexe Datenbankabfrage:
Liefert folgendes Ergebnis, z.B.:
Jetzt hätte ich es gern so dass von dass von u_id nur derjenige mit dem günstigsten Gesamtpreis angezeigt wird, also solls am Ende so aussehen:
Vorschläge?
Also bitte nicht mit DISTINCT kommen, das klappt in diesem Fall nicht ... also ich hab eher an eine temporäre Tabelle gedacht, die dann wieder sortiert wird, ein guter Ansatz?
trotz Forensuche etc. kam ich auf keine Lösung bei folgendem Problem:
Also eine recht komplexe Datenbankabfrage:
PHP-Code:
SELECT u.u_id, uz.uz_id, IF(u.u_waehrung != 1, 1.00 / uw.uw_umrechnung,1) *
((uz.uz_stpreis * (ABS( TO_DAYS( '2006-09-04' ) - TO_DAYS( '2006-08-30' )) -
COUNT( uze.uze_uzid )) +
SUM( uze.uze_preis )) * IF(u.u_kostenberechnung='Person',5,1))
AS gesamtpreis,
COUNT(uzs.uzs_id) AS verfuegbar
FROM unterkunft AS u
LEFT JOIN verband AS v ON v.v_id = u.u_vid
LEFT JOIN u_zimmer AS uz ON uz.uz_uid = u.u_id
LEFT JOIN uz_expreise AS uze ON uz.uz_id = uze.uze_uzid AND uze.uze_datum
BETWEEN '2006-08-30' AND '2006-09-03'
LEFT JOIN u_waehrung AS uw ON u.u_waehrung = uw.uw_id
LEFT JOIN uz_status uzs ON uz.uz_id = uzs.uzs_uzid AND uzs.uzs_datum
BETWEEN '2006-08-30' AND '2006-09-03'
GROUP BY u.u_id
HAVING verfuegbar = 0
ORDER BY gesamtpreis
PHP-Code:
u_id uz_id gesamtpreis verfuegbar
1 1 35 0
1 2 45 0
2 1 55 0
3 1 65 0
1 3 75 0
PHP-Code:
u_id uz_id gesamtpreis verfuegbar
1 1 35 0
2 1 55 0
3 1 65 0
Also bitte nicht mit DISTINCT kommen, das klappt in diesem Fall nicht ... also ich hab eher an eine temporäre Tabelle gedacht, die dann wieder sortiert wird, ein guter Ansatz?
Kommentar