Prijslijst overzicht en alleen laagste prijs laten zien.
IPV
Appels 1,00
Appels 2,00
Appels 3,75
--
Appels vanaf 1,00
Ik heb dit als select van de tabel
sql = "SELECT * FROM producten GROUP BY artikel_id ORDER BY prijs DESC";
De tabel "PRODUCTEN" bestaat uit
product_id
artikel_id
prijs
omschrijving
Het lukt me niet om de laagste prijs te laten zien. Wat doe ik niet goed?
Ik neem aan dat je het niet met een komma opslaat? Want daar kan MySQL niet mee rekenen.
Gewijzigd op 08/08/2016 13:44:23 door - Ariën -
Dat is eigenlijk altijd fout, ook al geeft Mysql wel vaak een antwoord dat min of meer toevallig is, wat je wilde hebben.
- Ariën - op 08/08/2016 13:43:47:
Hoe sla je het op in de database? En wat voor veldtype?
Ik neem aan dat je het niet met een komma opslaat? Want daar kan MySQL niet mee rekenen.
Ik neem aan dat je het niet met een komma opslaat? Want daar kan MySQL niet mee rekenen.
Nee de prijs is: decimal(7,2)
Toevoeging op 08/08/2016 14:11:24:
En voor de alias (minprijs) kun je ook een naam die jou leuk lijkt kiezen. Kies echter bij voorkeur niet "prijs" aangezien dat ook de naam van een kolom is. En dat geeft soms onverwachte resultaten bij sorteren.
En mocht je naast de artikel_id ook nog andere kolommen willen hebben:
dat kan, maar dan moet je die óók in het stuk GROUP BY toevoegen
Voorbeeld
Appels 0.00
Appels 3.00
Appels 2.75
Nu laat hij dan zien:
Appels 0.00
Maar ik wil eigenlijk dan de eerste volgende dus
Appels 2.75
Hoe krijg ik dat voor elkaar?!
Gewijzigd op 08/08/2016 17:24:24 door Kees Mulder
Maar ik snap niet helemaal waarom de prijs dan op aanvraag kan zijn, terwijl er ook een tweede prijs is?
Toevoeging op 08/08/2016 17:35:22:
Code (php)
1
2
3
4
2
3
4
SELECT artikel_id, MIN(prijs) AS minprijs
FROM producten
WHERE prijs > 0
GROUP BY artikel_id
FROM producten
WHERE prijs > 0
GROUP BY artikel_id
(en zie hier ook een reden om de alias niet "prijs" te maken