Ik heb een tabel met gegevens over reizen.

meerdere rijen hebben dezelfde datum (beg_Season).
en meerdere prijzen (SellFCincTaxAct)

Ik will de reizen groeperen op datum en dan de goedkoopste prijs laten zien.

Wat ik had:

<?
$query = "SELECT ID, SellFCincTaxAct, Beg_Season, End_Season"
. "\nFROM ask_product_prices"
. "\nWHERE Calc_Code='$row->Calc_Code' AND WWW = 'True' AND (Price_Type = 'V' OR Price_Type = '2')"
. "\nGROUP BY Beg_Season"
. "\nORDER BY Beg_Season AND SellFCincTaxAct";

?>

is dit wel mogelijk in één query?

thx,

Auke
De ORDER BY is niet correct. Hier kun je geen AND gebruiken, maar moet je een komma gebruiken. Verder is het handig om de juiste richting aan te geven, ASC of DESC.

AND (Price_Type = 'V' OR Price_Type = '2')

kun je vervangen door

AND Price_Type IN ('V', '2')
Oke...
weer twee dingen geleerd! \0/

maar helaas blijf ik met de volgende query

<?
$query = "SELECT ID, SellFCincTaxAct, Beg_Season, End_Season"
. "\nFROM ask_product_prices"
. "\nWHERE Calc_Code='$row->Calc_Code' AND WWW = 'True' AND Price_Type IN ('V', '2')"
. "\nGROUP BY Beg_Season"
. "\nORDER BY Beg_Season ASC, SellFCincTaxAct ASC";
?>

niet het laagste bedrag krijgen. rare is dat het zelf ongeveer het middelste bedrag is dus ook niet het hoogste, maar het middelste...

nog een idee?

thnx
Auke.
Waar moet het bedrag dan vandaan komen? En echo de query eens, dan weet je precies wat er richting de database wordt gestuurd.
Eeen echo van $query levert dit op:

SELECT ID, SellFCincTaxAct, Beg_Season, End_Season FROM ask_product_prices WHERE Calc_Code='ISFDAWYZE' AND WWW = 'True' AND Price_Type IN ('V','2') GROUP BY Beg_Season ORDER BY Beg_Season ASC, SellFCincTaxAct ASC


alle reizen die ik wil hebben dus Calc_Code ISFDAWYZ en WWW is True wat betekend dat ze online geplaatst mogen worden

daarnaast moet de price_Type op V of 2 staan zodat ik alle resulktaten krijg met de prijzen voor twee personen.

Ik wil ze groeperen op Beg_Season zodat ik een overzichtje krijg van de vesrchillende reisdata. (haal ik die weg krijg ik een lange lijst met reisdata die het zelfde zijn, maar een andere prijs hebben)

Van de elke reisdatum wil ik de goedkoopste prijs hebben. zodat ik de bezoeker dus de "prijs van af" kan laten zien.

nu krijg ik alleen de (ongeveer) middelste prijzen te zien.
Bij het grouperen moet je met MIN de laagste prijs van die groep hebben. Het zou zoiets moeten worden denk ik.

SELECT
ID, SellFCincTaxAct, Beg_Season, End_Season, MIN(prijs) AS laagste_prijs
FROM ask_product_prices
WHERE Calc_Code='ISFDAWYZE'
AND WWW = 'True'
AND Price_Type IN ('V','2')
GROUP BY Beg_Season
ORDER BY Beg_Season ASC, laagste_prijs ASC
Yes!

Fijn heel erg bedankt. ik merk dat ik nog zoveel niet weet van het gebruik van mysql queries daar moet ik me nog vreselijk in gaan verdiepen.

dit is het dus geworden
<?
$query = "SELECT ID, Beg_Season, End_Season, MIN(SellFCincTaxAct) AS laagste_prijs"
. "\nFROM ask_product_prices"
. "\nWHERE Calc_Code='".$row->Calc_Code."' AND WWW = 'True' AND Price_Type IN ('V','2')"
. "\nGROUP BY Beg_Season"
. "\nORDER BY Beg_Season ASC, laagste_prijs ASC";
?>

nieuw geleerd; MIN()
Nogmaals bedankt,

Auke.

Reageren