UPDATE `otvod` SET `Заказов`=`Заказов` +
(SELECT COUNT( * ) FROM `zakaz`
WHERE `zakaz`.`voditel` = `otvod`.`Водитель`
AND `zakaz`.`ok` LIKE '1'
and (`zakaz`.`vkassu` * '100' / `zakaz`.`cena`) <> '10'
GROUP BY `zakaz`.`voditel` )
Запрос должен прибавлять к ячейке количество соответствующее выборке SELECT COUNT( * ), проблема в том что если это условие для какой либо ячейки равно '0' , запрос не прибавляет к этой ячейке ноль а полностью обнуляет ее, то есть было например там 25 а стало ноль, хотя должно остаться неизменным. Как это исправить? Помогите
Спустя 9 минут, 55 секунд (31.07.2012 - 12:16) DarkLynx написал(а):
Нет, наверняка я что то не знаю... но... РУССКИЕ поля таблицы??????????
Спустя 1 минута, 51 секунда (31.07.2012 - 12:18) Игорь_Vasinsky написал(а):
пофиг.
Спустя 2 минуты, 29 секунд (31.07.2012 - 12:21) DarkLynx написал(а):
Цитата (Игорь_Vasinsky @ 31.07.2012 - 10:18) |
пофиг. |
Я это к тому что... "Кто так делает????"... имхо это же извращение какое то.. при том смесь англ с русским... ну да ладно...
А по теме я бы для начала посоветовал посмотреть что вообще получается в результате селекта..
Спустя 2 часа, 12 минут, 32 секунды (31.07.2012 - 14:33) Гость_Ирина написал(а):
DarkLynx
просто селект выдает ошибку Unknown column 'otvod.Водитель' in 'where clause'
а если полностью запрос с обновлением, то ошибки нет, и делает все правильно
просто селект выдает ошибку Unknown column 'otvod.Водитель' in 'where clause'
а если полностью запрос с обновлением, то ошибки нет, и делает все правильно
Спустя 23 минуты, 38 секунд (31.07.2012 - 14:57) DarkLynx написал(а):
Цитата (Гость_Ирина @ 31.07.2012 - 12:33) |
DarkLynx просто селект выдает ошибку Unknown column 'otvod.Водитель' in 'where clause' а если полностью запрос с обновлением, то ошибки нет, и делает все правильно |
Если есть ошибка то это уже не правильно...
WHERE `zakaz`.`voditel` = `otvod`.`Водитель`
Там точно `otvod`.`Водитель` а не например `otvod`.`voditel`??
И объясните мне пожалуйста, ну почему у вас одни поля русские а другие англ?
Спустя 2 минуты, 59 секунд (31.07.2012 - 15:00) DarkLynx написал(а):
А и еще, разве в sub запросе можно обращаться к таблицам которые указывается в parent запросе?
Спустя 13 минут, 37 секунд (31.07.2012 - 15:14) Гость_Ирина написал(а):
Поля таблицы верные. Русские они, потому что их названия выводятся на страницу. Если нельзя так, то как можно обращаться к таблицам в парент запросе?
Спустя 11 минут, 16 секунд (31.07.2012 - 15:25) kamanch написал(а):
ВСЕМ
А COUNT( * ) работает также по времени, как и COUNT( `какое_то_поле` ) ?
Автору
Лучше задачу проекта опиши, мы тебе новую базу спроектируем. То, что у тебя там есть - это преступление против программирования
Имена полей не используют в качестве данных.
А COUNT( * ) работает также по времени, как и COUNT( `какое_то_поле` ) ?
Автору
Лучше задачу проекта опиши, мы тебе новую базу спроектируем. То, что у тебя там есть - это преступление против программирования

Имена полей не используют в качестве данных.
Спустя 5 минут, 2 секунды (31.07.2012 - 15:30) DarkLynx написал(а):
Цитата (kamanch @ 31.07.2012 - 13:25) |
ВСЕМ А COUNT( * ) работает также по времени, как и COUNT( `какое_то_поле` ) ? |
И к чему это?
Спустя 54 минуты, 24 секунды (31.07.2012 - 16:24) kamanch написал(а):
DarkLynx
Это был вопрос, который меня интересует
Это был вопрос, который меня интересует
Спустя 25 минут, 30 секунд (31.07.2012 - 16:50) DarkLynx написал(а):
Цитата (kamanch @ 31.07.2012 - 14:24) |
DarkLynx Это был вопрос, который меня интересует |
А.. не заметил вопрос.. Устал уже..
Сам не проверял, но вроде как да.. Ну или даже, если разница и есть то не сильная.. Но утверждать не буду.. Надо самому проверять..
Спустя 8 минут, 21 секунда (31.07.2012 - 16:58) Гость_Ирина написал(а):
селект будет работать если указать так
но так уже не работает
SELECT COUNT( * ) FROM `zakaz`
WHERE `zakaz`.`voditel` = `otvod`.`Водитель`
AND `zakaz`.`ok` LIKE '1'
and (`zakaz`.`vkassu` * '100' / `zakaz`.`cena`) <> '10'
GROUP BY `zakaz`.`voditel`
но так уже не работает
UPDATE `otvod` SET `Заказов`=`Заказов` +
(SELECT COUNT( * ) FROM `zakaz`,`otvod`
WHERE `zakaz`.`voditel` = `otvod`.`Водитель`
AND `zakaz`.`ok` LIKE '1'
and (`zakaz`.`vkassu` * '100' / `zakaz`.`cena`) <> '10'
GROUP BY `zakaz`.`voditel` )
Спустя 4 минуты, 52 секунды (31.07.2012 - 17:03) Гость_Ирина написал(а):
UPDATE `otvod` SET `Заказов`=`Заказов` +
(SELECT COUNT( * ) FROM `zakaz`
WHERE `zakaz`.`voditel` = `otvod`.`Водитель`
AND `zakaz`.`ok` LIKE '1'
and (`zakaz`.`vkassu` * '100' / `zakaz`.`cena`) <> '10'
GROUP BY `zakaz`.`voditel` )
здесь все идально, но почему он обнуляет ячейки которые не соответствуют условию?????????????? помогите
если для ячейки каунт насчитывает хотябы единицу, то все отлично, к предыдущему значению добавляет 1 и все, но если ноль, то не прибавляет ноль к существующему значению, а обнуляет всю ячейку..
Спустя 42 минуты, 7 секунд (31.07.2012 - 17:45) Гость_Ирина написал(а):
оказалось нужно было просто GROUP BY `zakaz`.`voditel` убрать, и все работает