Модераторы: skyboy
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Ошибка в подзапросе, Error code 1054, SQL state 42S22 
:(
    Опции темы
jeank
Дата 15.5.2009, 17:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 71
Регистрация: 26.6.2008
Где: Калининград

Репутация: нет
Всего: 1



Данный запрос не работает в Mysql, (в MSSql работает):

Код

SELECT  r.acc,
        (SELECT     ifnull(SUM(q.sm), 0)
         FROM (SELECT     s.summa AS sm
              FROM       nalog_doc s
              WHERE      s.account_id = r.id AND s.data_doc >= '2009-01-11') AS q) AS oborot_s

FROM         account r
WHERE      r.acc= '777'
ORDER BY r.acc


Ругается на r.id - неизвестная колонка.
Может кто подскажет как в Mysql переиначить такой запрос так чтоб работал?


Это сообщение отредактировал(а) jeank - 15.5.2009, 17:09
PM MAIL WWW   Вверх
bars80080
Дата 15.5.2009, 20:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 5
Всего: 315



Цитата(jeank @  15.5.2009,  17:07 Найти цитируемый пост)
FROM         account r

дык, а где у тебя написано, что есть r ?

account as r может быть?
PM MAIL WWW   Вверх
Akina
Дата 15.5.2009, 20:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 106
Всего: 454



Вырезаем подзапрос:
Код

(
 SELECT     ifnull(SUM(q.sm), 0)
 FROM
 (
  SELECT s.summa AS sm
  FROM       nalog_doc s
  WHERE      s.account_id = r.id AND s.data_doc >= '2009-01-11'
 ) AS q
) AS oborot_s
и долго ищем, к чему же относится это r.id...


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
jeank
Дата 16.5.2009, 09:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 71
Регистрация: 26.6.2008
Где: Калининград

Репутация: нет
Всего: 1



Ну так, собственно, хочется чтобы внешнее объявление
Код

FROM         account r

было в области видимости подзапроса или подзапросов, по моему это логично.
PM MAIL WWW   Вверх
Gwire
Дата 16.5.2009, 10:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 216
Регистрация: 7.8.2007
Где: Николаев

Репутация: 1
Всего: 4



Код
SELECT r.acc,
   (SELECT ifnull(SUM(q.sm), 0)
      FROM (SELECT s.summa AS sm,
                s.account_id                     /* <---- */
              FROM nalog_doc s
              WHERE s.data_doc >= '2009-01-11'   /* перемести от сюда */
           ) q
      WHERE q.account_id=r.id                    /* сюда */
   ) AS oborot_s
  FROM account r
  WHERE r.acc= '777'
  ORDER BY r.acc;

И еще если не ошибаюсь не "ifnull(SUM(q.sm), 0)", а SUM(ifnull(q.sm, 0)).
Когда разберёшся с r.id может вылесть такая ошибка, причем не явная (вроде считает, но что-то не так).
3+6+0+NULL+5 = NULL, и != 14. smile


Это сообщение отредактировал(а) Gwire - 16.5.2009, 10:43
PM MAIL   Вверх
jeank
Дата 16.5.2009, 11:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 71
Регистрация: 26.6.2008
Где: Калининград

Репутация: нет
Всего: 1



Gwire спасибо, сам допер практически одновременно с твоим постом. Однако по прежнему считаю, что это баг, когда позапрос в подзапросе вне области видимости основного запроса.
PM MAIL WWW   Вверх
Gwire
Дата 16.5.2009, 16:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 216
Регистрация: 7.8.2007
Где: Николаев

Репутация: 1
Всего: 4




Цитата(jeank @  16.5.2009,  11:16 Найти цитируемый пост)
это баг, когда позапрос в подзапросе вне области видимости основного запроса.

Что именно имеется ввиду бод словом "баг". Если это недоработка MySQL по сравнению с MS SQL, то Oracle тоже так ругается. 
Цитата
(Error): ORA-00904: "R"."ID": invalid identifier

Видимо сие и не надобно.

P.S. Что такое  "допер"? Я зная кто такой Допплер, а "допер" - нет. smile 


Это сообщение отредактировал(а) Gwire - 16.5.2009, 16:53
PM MAIL   Вверх
jeank
Дата 16.5.2009, 17:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 71
Регистрация: 26.6.2008
Где: Калининград

Репутация: нет
Всего: 1



Цитата

 Что такое  "допер"?


Ну правильней - допёр (дотащил, донес), в переносном смысле "сам допер" - сам до чего то "дошел" (додумался).
 smile 
PM MAIL WWW   Вверх
bars80080
Дата 16.5.2009, 19:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 5
Всего: 315



Цитата(jeank @  16.5.2009,  17:20 Найти цитируемый пост)
Ну правильней - допёр (дотащил, донес)

в смысле донёс

Добавлено через 23 секунды
Цитата(jeank @  16.5.2009,  17:20 Найти цитируемый пост)
сам до чего то "дошел" (додумался).

и дошёл
PM MAIL WWW   Вверх
Gwire
Дата 17.5.2009, 09:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 216
Регистрация: 7.8.2007
Где: Николаев

Репутация: 1
Всего: 4



smile jeank, я допёр, ударение не туда поставил. Пожалуйста.
bars80080 smile
P.S. Михаил Задорнов настоятельно рекомендует всем русско-думающим людям не забывать про букву "Ё".
Их итак 33 осталось (было 42). Теряем древние славянские корни. smile



Это сообщение отредактировал(а) Gwire - 17.5.2009, 10:53
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | MySQL | Следующая тема »


 




[ Время генерации скрипта: 0.0552 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.