[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: обнуляет, а не прибавляет ноль
Гость_Ирина
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'
а если полностью запрос с обновлением, то ошибки нет, и делает все правильно

Спустя 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( `какое_то_поле` ) ?

Автору
Лучше задачу проекта опиши, мы тебе новую базу спроектируем. То, что у тебя там есть - это преступление против программирования smile.gif
Имена полей не используют в качестве данных.

Спустя 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` убрать, и все работает
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.