Здравствуйте, как можно сгруппировать и вывести кол-во их как на рисунке это код для отдельно результата, мне нужно объединить 2 запроса Код (Text): SELECT cell,count(cell) FROM document where cell>0 GROUP BY cell Код (Text): SELECT old,count(old) FROM document where old>0 GROUP BY old
Навскидку, без проверки Код (Text): select tab.val, count(d1.*), count(d2.*) from (select if(cell>0, cell, old) val from document) tab, document d1, document d2 where d1.cell=tab.val and d2.old = tab.val group by tab.val
Хыиуду, ошибка выходить #1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '*) from (select if(cell_id>0, cell, old) val from document) tab, docu' at line 1 хотя если убрать count(d1.*), count(d2.*), тогда результат только val - название столбца 52
Тестируем тут. Или так: Код (PHP): SELECT CASE WHEN `old` > 0 THEN `old` ELSE `cell` END AS `cell-old`, SUM(CASE WHEN `cell` > 0 THEN 1 ELSE 0 END) AS `cntCell`, SUM(CASE WHEN `old` > 0 THEN 1 ELSE 0 END) AS `cntOld` FROM `document` GROUP BY `cell-old` Или то же самое с помощью IF: Код (PHP): SELECT IF(`old` > 0, `old`, `cell`) AS `cell-old`, SUM(IF(`cell` > 0, 1, 0)) AS `cntCell`, SUM(IF(`old` > 0, 1, 0)) AS `cntOld` FROM `document` GROUP BY `cell-old`
Deonis, спасибо Вам, завтра на своем базе протестирую, по ссылке работает Спасибо за ссылку (Тестируем тут)
Deonis, протестировал, работает, еще раз спасибо!!! runcore, в моем случае cell, lod они >=0, и cell или old больше нуля.