Forum Webscript.Ru

Общие => Базы данных => Тема начата: kiruxa от 13 Марта 2008, 12:22:17

Название: не работает COUNT по базе
Отправлено: kiruxa от 13 Марта 2008, 12:22:17
Добрый день,
вот есть такой запрос....
SELECT

UPPER( CONCAT_WS( \' \', CONVERT( model_name
USING cp1251 ) , model_text ) ) AS `model_name` ,

COUNT( model_name )


FROM `tbl_vehicle`

LEFT OUTER JOIN `lu_vehicle_model` ON `tbl_vehicle`.`model` = `lu_vehicle_model`.`id`
WHERE  `tbl_vehicle`.`make` = \'10\'

GROUP BY model_name
 

счетчик всегда возвращает 0

хотя в запросе есть много записей
если делаю без групирования то он возвращает model_name одного вида несколько штук

не подскажете в чем трабл?
Название: не работает COUNT по базе
Отправлено: Altaxar от 13 Марта 2008, 12:57:58
SELECT

UPPER( CONCAT_WS( \' \', CONVERT( model_name
USING cp1251 ) , model_text ) ) AS `model_name` ,

COUNT( model_name )


FROM `tbl_vehicle`

LEFT OUTER JOIN `lu_vehicle_model` ON `tbl_vehicle`.`model` = `lu_vehicle_model`.`id`
WHERE  `tbl_vehicle`.`make` = \'10\'

GROUP BY model_name

Правельно, что ошибка... ты же счетчик на результат UPPER(...) as model_name поствил, а не на столбец model_name
Название: не работает COUNT по базе
Отправлено: kiruxa от 13 Марта 2008, 14:17:03
да я понимаю, как можно это обойти?

мне именно его посчитать надо...
Цитировать
Altaxar:
результат UPPER(...) as model_name поствил,
Название: не работает COUNT по базе
Отправлено: Altaxar от 13 Марта 2008, 16:32:33
Ну вообщето :
UPPER( CONCAT_WS( \' \', CONVERT( model_name
USING cp1251 ) , model_text ) ) AS model_name2 ,

COUNT( model_name )
....
GROUP BY model_name

У тебя же model_name2 (UPPER(...)) это не список, а model_name - список
Название: не работает COUNT по базе
Отправлено: kiruxa от 13 Марта 2008, 16:38:57
в данном случае мне и надо посчитать model_name2


думал что может както сделать типа

SELECE model_name, count(model_name) FROM
(
SELECT

UPPER( CONCAT_WS( \' \', CONVERT( model_name
USING cp1251 ) , model_text ) ) AS `model_name`

FROM `tbl_vehicle`

LEFT OUTER JOIN `lu_vehicle_model` ON `tbl_vehicle`.`model` = `lu_vehicle_model`.`id`
WHERE `tbl_vehicle`.`make` = \'10\'
) GROUP BY model_name


но так тоже не работает
Название: не работает COUNT по базе
Отправлено: kiruxa от 13 Марта 2008, 17:15:58
Спасибо огромное, немного не то но все таки помогло

SELECT
t2.model_name,
COUNT(t2.model_name) AS cnt
FROM

( SELECT UPPER(CONCAT_WS(\' \',CONVERT(model_name USING cp1251 ),model_text)) AS `model_name`

FROM `tbl_vehicle` LEFT OUTER JOIN `lu_vehicle_model` ON `tbl_vehicle`.`model`=`lu_vehicle_model`.`id` WHERE `dealer_id` = \'1\' AND `tbl_vehicle`.`status`=\'1\' )
AS t2 GROUP BY t2.model_name


Вот оно решение рожденное в муках
Название: не работает COUNT по базе
Отправлено: hanslinger от 13 Марта 2008, 18:47:29
И какой только хуйней люди не занимаются, когда не могут правильно выбрать инструмент для решения задачи, а.