ik heb de volgende MySQL tabel:
tabel: tbl_prodlev
`id` int(11) NOT NULL auto_increment,
`prod_id` int(11) NOT NULL,
`leverancier` int(11) NOT NULL,
`aantal` int(11) NOT NULL,
`prijs` int(11) NOT NULL,
PRIMARY KEY (`id`)
Nu is het zo dat er bijvoorbeeld 3 keer product 100 in deze tabel kan voorkomen met andere leveranciers. Nu zou ik dus de ID moeten hebben van het product dat het goedkoopst is EN ook op voorraad is.
Zelf was ik al bezig geweest met:
Alleen werkt deze query niet helemaal goed, ik krijg altijd het eerste product terug: dus als er 3x product X in de tabel staat krijg ik de 1e terug.
Iemand enig idee hoe dit op te lossen is?
tabel: tbl_prodlev
`id` int(11) NOT NULL auto_increment,
`prod_id` int(11) NOT NULL,
`leverancier` int(11) NOT NULL,
`aantal` int(11) NOT NULL,
`prijs` int(11) NOT NULL,
PRIMARY KEY (`id`)
Nu is het zo dat er bijvoorbeeld 3 keer product 100 in deze tabel kan voorkomen met andere leveranciers. Nu zou ik dus de ID moeten hebben van het product dat het goedkoopst is EN ook op voorraad is.
Zelf was ik al bezig geweest met:
SQL:
1
2
3
4
5
| SELECT t1.* FROM tbl_prodlev t1 INNER JOIN tbl_prodlev t2 ON t1.prod_id= t2.prod_id GROUP By t1.prod_id, t1.prod_id HAVING min(t1.prijs) = Min(t2.prijs) AND t1.aantal > -1 |
Alleen werkt deze query niet helemaal goed, ik krijg altijd het eerste product terug: dus als er 3x product X in de tabel staat krijg ik de 1e terug.
Iemand enig idee hoe dit op te lossen is?