SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 27.09.2016 17:48:50

Искандар
Участник
Зарегистрирован: 27.09.2016
Сообщений: 7

Не работает подзапрос!

Добрый вечер!
Помогите новичку пожалуйста.
Вот запрос:

SELECT СумTable1.Намуди_бор, СумTable1.Номи_бор, СумTable1.Ранги_бор, СумTable1.Sum-Чан_дона-Nz(СумTable2.Sum-Чан_дона,0) AS Остаток, Nz(СумTable2.Sum-Чан_дона,0) AS СумTable2, Nz(СумTable1.Sum-Чан_дона,0) AS СумTable1
FROM (SELECT Table1.Намуди_бор, Table1.Номи_бор, Table1.Ранги_бор, Sum(Table1.Чан_дона) AS Sum-Чан_дона FROM Table1 GROUP BY Table1.Намуди_бор, Table1.Номи_бор, Table1.Ранги_бор)  AS СумTable1 LEFT JOIN (SELECT Table2.Намуди_бор, Table2.Номи_бор, Table2.Ранги_бор, Sum(Table2.Чан_дона) AS Sum-Чан_дона FROM Table2 GROUP BY Table2.Намуди_бор, Table2.Номи_бор, Table2.Ранги_бор)  AS СумTable2 ON (СумTable1.Намуди_бор = СумTable2.Намуди_бор) AND (СумTable1.Номи_бор = СумTable2.Номи_бор) AND (СумTable1.Ранги_бор = СумTable2.Ранги_бор);
 


Найдено 6 ошибок при анализе.
Ожидалось выражение. (near "(" at position 225)
Неожиданный токен. (near "(" at position 225)
This type of clause was previously parsed. (near "SELECT" at position 226)
Неожиданный токен. (near ")" at position 397)
Неизвестное ключевое слово. (near "AS" at position 400)
Неожиданный токен. (near "СумTable1" at position 403)

Спасибо за ранее!

Отредактированно Искандар (27.09.2016 18:00:31)

Неактивен

 

#2 27.09.2016 17:59:05

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5829

Re: Не работает подзапрос!

Не понятно, что значит "не работает" и какой из подзапросов.
У вас точно MySQL, а не MSSQL?

Неактивен

 

#3 27.09.2016 18:04:08

Искандар
Участник
Зарегистрирован: 27.09.2016
Сообщений: 7

Re: Не работает подзапрос!

Первый подзапрос.

Неактивен

 

#4 27.09.2016 18:14:44

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5829

Re: Не работает подзапрос!

Первый подзапрос это
(SELECT Table1.Намуди_бор, Table1.Номи_бор, Table1.Ранги_бор, Sum(Table1.Чан_дона) AS Sum-Чан_дона FROM Table1 GROUP BY Table1.Намуди_бор, Table1.Номи_бор, Table1.Ранги_бор)  AS СумTable1

никакого криминала в нем нет. По крайнем мере с позиции моих знаний MySQL. Но у вас явно не MySQL. Увы, но помочь вам не смогу.

Неактивен

 

#5 27.09.2016 18:31:10

Искандар
Участник
Зарегистрирован: 27.09.2016
Сообщений: 7

Re: Не работает подзапрос!

У меня MySQL в хостинге beger.ru. и там есть phpmyadmin...

Неактивен

 

#6 27.09.2016 18:33:28

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5829

Re: Не работает подзапрос!

эти ошибки про неожиданный токен пишет phpmyadmin?

Неактивен

 

#7 27.09.2016 18:35:12

Искандар
Участник
Зарегистрирован: 27.09.2016
Сообщений: 7

Re: Не работает подзапрос!

Да

Неактивен

 

#8 27.09.2016 18:40:44

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5829

Re: Не работает подзапрос!

первый раз такое вижу, покажите скрин?

и какая у вас версия?
select version();

Nz это у вас такая функция определена или синтаксис аксеса?

Неактивен

 

#9 27.09.2016 18:46:34

Искандар
Участник
Зарегистрирован: 27.09.2016
Сообщений: 7

Re: Не работает подзапрос!

Неактивен

 

#10 27.09.2016 18:47:21

Искандар
Участник
Зарегистрирован: 27.09.2016
Сообщений: 7

Re: Не работает подзапрос!

Этот запро создан в MSAccess.

Неактивен

 

#11 27.09.2016 18:58:09

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5829

Re: Не работает подзапрос!

Ага, эту фигню пишет phpadmin (запрос до MySQL не доходит)
попробуйте заменить Nz на IFNULL
и взять имена в обратные кавычки (там где буква ё на клавиатуре), т.е.
`СумTable1`.`Намуди_бор`
`СумTable1`.`Sum-Чан_дона` - IFNULL(`СумTable2`.`Sum-Чан_дона`,0)
и т.д.

Неактивен

 

#12 28.09.2016 16:41:09

Искандар
Участник
Зарегистрирован: 27.09.2016
Сообщений: 7

Re: Не работает подзапрос!

vasya написал:

Ага, эту фигню пишет phpadmin (запрос до MySQL не доходит)
попробуйте заменить Nz на IFNULL
и взять имена в обратные кавычки (там где буква ё на клавиатуре), т.е.
`СумTable1`.`Намуди_бор`
`СумTable1`.`Sum-Чан_дона` - IFNULL(`СумTable2`.`Sum-Чан_дона`,0)
и т.д.

Добрый день!
Всё разобрался, оказывается в программе работать проще и удобно).
Быстро нашел свою ошибку.


Вот как должно быть:

SELECT Sumtable1.Намуди_бор, Sumtable1.Номи_бор, Sumtable1.Ранги_бор, Sumtable1.Sum_чан_дона-IFNULL(Sumtable2.Sum_чан_дона,0) AS Остаток, IFNULL(Sumtable2.Sum_чан_дона,0) AS Сум2,
IFNULL(Sumtable1.Sum_чан_дона,0) AS Сум1
FROM
(SELECT Table1.Намуди_бор, Table1.Номи_бор, Table1.Ранги_бор, Sum(Table1.Чан_дона) AS Sum_чан_дона FROM Table1 GROUP BY Table1.Намуди_бор, Table1.Номи_бор, Table1.Ранги_бор)  AS Sumtable1
LEFT JOIN
(SELECT Table2.Намуди_бор, Table2.Номи_бор, Table2.Ранги_бор, Sum(Table2.Чан_дона) AS Sum_чан_дона FROM Table2 GROUP BY Table2.Намуди_бор, Table2.Номи_бор, Table2.Ранги_бор)  AS Sumtable2
ON (Sumtable1.Намуди_бор = Sumtable2.Намуди_бор)
AND (Sumtable1.Номи_бор = Sumtable2.Номи_бор)
AND (Sumtable1.Ранги_бор = Sumtable2.Ранги_бор);

Спасибо за советы!!!

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson