Problém s having v group function

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
Miri
Člen | 117
+
0
-

Ahoj, právě se snažím v nette database dosáhnout správného having, bohužel mi to z neznámého důvodu nepřečte jako having ale při výpisu chybové hlášky je stále v group by.

Tohle se snažím udělat:

SELECT `produktkus`.*, COUNT(DISTINCT `filtr_has_produkt`.`filtr_idfiltr`) AS `pocetvybr`
FROM `produktkus`
LEFT JOIN `produkt` AS `produkt_idprodukt` ON `produktkus`.`produkt_idprodukt` =
`produkt_idprodukt`.`idprodukt`
INNER JOIN ....
INNER JOIN `filtr_has_produkt` ON `produkt_idprodukt`.`idprodukt` =
`filtr_has_produkt`.`produkt_idprodukt`
WHERE (`menu_has_produkt`.`menu_idmenu` = ?) AND (`filtr_has_produkt`.`filtr_idfiltr` IN
(' . implode(',', $pole) . '))
GROUP BY `idproduktkus`
Having `pocetvybr` >= count($pole)

Takhle mi to vyhazuje hlášenka:

SELECT `produktkus`.*, COUNT(DISTINCT `filtr_has_produkt`.`filtr_idfiltr`) AS `pocetvybr`
FROM `produktkus`
LEFT JOIN `produkt` AS `produkt_idprodukt` ON `produktkus`.`produkt_idprodukt` =
`produkt_idprodukt`.`idprodukt`
INNER JOIN ....
INNER JOIN `filtr_has_produkt` ON `produkt_idprodukt`.`idprodukt` =
`filtr_has_produkt`.`produkt_idprodukt`
WHERE (`menu_has_produkt`.`menu_idmenu` = ?) AND (`filtr_has_produkt`.`filtr_idfiltr` IN
(106,107,108))
GROUP BY `idproduktkus`, `pocetvybr` >= 3

S touto chybovou hláškou
Column not found: 1247 Reference ‚pocetvybr‘ not supported (reference to group function) search►

Takhle to dělám:

$this->models["produkt"]->selectPieceByMenu($this->values["currentMenuID"])
                    ->where('produkt_idprodukt.filtr_has_produkt:filtr_idfiltr IN (' . implode(',', $pole) . ')')

                    ->select('produktkus.*, COUNT(DISTINCT produkt_idprodukt.filtr_has_produkt:filtr_idfiltr) AS pocetvybr')
                    ->group("idproduktkus, pocetvybr >= ".$i."");

Nevíte prosím kde dělám chybu? Zkouším vše možné a stále si nevím rady.
Předem díky
Míra

s4muel
Člen | 92
+
0
-

group() metoda berie dva string parametre, ty jej omylom posielas len jeden string s ciarkou
https://api.nette.org/…lection.html#…

takze namiesto:

->group("idproduktkus, pocetvybr >= ".$i."");

pouzi:

->group("idproduktkus", "pocetvybr >= $i");
Miri
Člen | 117
+
0
-

Aj chybička se vloudila, už to funguje perfektně. Mockrát díky