Задача — выбрать должников, не заплативших за указанный месяц нужную сумму (mySQL 4.0.18 + PHP4).
Запрос:
CREATE TEMPORARY TABLE tmp (UserID_R INT, amount_sum INT);
INSERT INTO tmp (UserID_R, amount_sum) SELECT Payments.UserID_R, SUM(Payments.amount) FROM Payments WHERE YEAR(Payments.Date)=2006 AND MONTH(Payments.Date)=1 AND Payments.Type=2;
SELECT u.* FROM Users AS u WHERE u.ID IN (tmp.UserID_R) AND tmp.amount_sum<50;
DROP TABLE tmp;
Говорит ошибка в синтаксисе (начиная со второй строки). Все указанные колонки в исходных таблицах присутствуют.
Подскажите, что не так?
Здравствуйте, Wavy, Вы писали:
W>Задача — выбрать должников, не заплативших за указанный месяц нужную сумму (mySQL 4.0.18 + PHP4).
W>Запрос: W>
W>CREATE TEMPORARY TABLE tmp (UserID_R INT, amount_sum INT);
W>INSERT INTO tmp (UserID_R, amount_sum) SELECT Payments.UserID_R, SUM(Payments.amount) FROM Payments WHERE YEAR(Payments.Date)=2006 AND MONTH(Payments.Date)=1 AND Payments.Type=2;
W>SELECT u.* FROM Users AS u WHERE u.ID IN (tmp.UserID_R) AND tmp.amount_sum<50;
W>DROP TABLE tmp;
W>
W>Говорит ошибка в синтаксисе (начиная со второй строки). Все указанные колонки в исходных таблицах присутствуют. W>Подскажите, что не так?
А текст ошибки кто приводить будет?
Re[2]: Запрос с временной таблицей в mySQL
От:
Аноним
Дата:
06.03.06 09:26
Оценка:
W>>Задача — выбрать должников, не заплативших за указанный месяц нужную сумму (mySQL 4.0.18 + PHP4).
W>>Запрос: W>>
W>>CREATE TEMPORARY TABLE tmp (UserID_R INT, amount_sum INT);
W>>INSERT INTO tmp (UserID_R, amount_sum) SELECT Payments.UserID_R, SUM(Payments.amount) FROM Payments WHERE YEAR(Payments.Date)=2006 AND MONTH(Payments.Date)=1 AND Payments.Type=2;
W>>SELECT u.* FROM Users AS u WHERE u.ID IN (tmp.UserID_R) AND tmp.amount_sum<50;
W>>DROP TABLE tmp;
W>>
W>>Говорит ошибка в синтаксисе (начиная со второй строки). Все указанные колонки в исходных таблицах присутствуют. W>>Подскажите, что не так?
F>А текст ошибки кто приводить будет?
А текст блин стандартный, толку от него не много...
You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near '; INSERT INTO tmp SELECT Payments.UserID_R, SUM(Payments.amount
Здравствуйте, Аноним, Вы писали:
W>>>Задача — выбрать должников, не заплативших за указанный месяц нужную сумму (mySQL 4.0.18 + PHP4).
W>>>Запрос: W>>>
W>>>CREATE TEMPORARY TABLE tmp (UserID_R INT, amount_sum INT);
W>>>INSERT INTO tmp (UserID_R, amount_sum) SELECT Payments.UserID_R, SUM(Payments.amount) FROM Payments WHERE YEAR(Payments.Date)=2006 AND MONTH(Payments.Date)=1 AND Payments.Type=2;
W>>>SELECT u.* FROM Users AS u WHERE u.ID IN (tmp.UserID_R) AND tmp.amount_sum<50;
W>>>DROP TABLE tmp;
W>>>
W>>>Говорит ошибка в синтаксисе (начиная со второй строки). Все указанные колонки в исходных таблицах присутствуют. W>>>Подскажите, что не так?
F>>А текст ошибки кто приводить будет?
А>А текст блин стандартный, толку от него не много...
А>
А>You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near '; INSERT INTO tmp SELECT Payments.UserID_R, SUM(Payments.amount
А>
А вы что в одном mysql_query() несколько запросов пишите?
Кстати в INSERT .. SELECT у вас все равно ошибка будет, вы используете SUM() и при этом не используете GROUP BY.
Re[4]: Запрос с временной таблицей в mySQL
От:
Аноним
Дата:
06.03.06 09:46
Оценка:
W>>>>Задача — выбрать должников, не заплативших за указанный месяц нужную сумму (mySQL 4.0.18 + PHP4).
W>>>>Запрос: W>>>>
W>>>>CREATE TEMPORARY TABLE tmp (UserID_R INT, amount_sum INT);
W>>>>INSERT INTO tmp (UserID_R, amount_sum) SELECT Payments.UserID_R, SUM(Payments.amount) FROM Payments WHERE YEAR(Payments.Date)=2006 AND MONTH(Payments.Date)=1 AND Payments.Type=2;
W>>>>SELECT u.* FROM Users AS u WHERE u.ID IN (tmp.UserID_R) AND tmp.amount_sum<50;
W>>>>DROP TABLE tmp;
W>>>>
W>>>>Говорит ошибка в синтаксисе (начиная со второй строки). Все указанные колонки в исходных таблицах присутствуют. W>>>>Подскажите, что не так?
F>>>А текст ошибки кто приводить будет?
А>>А текст блин стандартный, толку от него не много...
А>>
А>>You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near '; INSERT INTO tmp SELECT Payments.UserID_R, SUM(Payments.amount
А>>
F>А вы что в одном mysql_query() несколько запросов пишите? F>Кстати в INSERT .. SELECT у вас все равно ошибка будет, вы используете SUM() и при этом не используете GROUP BY.
Да, это один запрос, — разве так нельзя?
Не подскажете как же все таки этот запрос должен выглядеть? Что-то я уже заколебался варианты перебирать...
Здравствуйте, Wavy, Вы писали:
W>Задача — выбрать должников, не заплативших за указанный месяц нужную сумму (mySQL 4.0.18 + PHP4).
W>Запрос: W>
W>CREATE TEMPORARY TABLE tmp (UserID_R INT, amount_sum INT);
W>INSERT INTO tmp (UserID_R, amount_sum) SELECT Payments.UserID_R, SUM(Payments.amount) FROM Payments WHERE YEAR(Payments.Date)=2006 AND MONTH(Payments.Date)=1 AND Payments.Type=2;
W>SELECT u.* FROM Users AS u WHERE u.ID IN (tmp.UserID_R) AND tmp.amount_sum<50;
W>DROP TABLE tmp;
W>
W>Говорит ошибка в синтаксисе (начиная со второй строки). Все указанные колонки в исходных таблицах присутствуют. W>Подскажите, что не так?
Что не так? Ты используешь SUM(...), а значит должно быть условие группировки GROUP BY. Вот тебе и ошибка.
Здравствуйте, Аноним, Вы писали:
W>>>>>Запрос: W>>>>>
W>>>>>CREATE TEMPORARY TABLE tmp (UserID_R INT, amount_sum INT);
W>>>>>INSERT INTO tmp (UserID_R, amount_sum) SELECT Payments.UserID_R, SUM(Payments.amount) FROM Payments WHERE YEAR(Payments.Date)=2006 AND MONTH(Payments.Date)=1 AND Payments.Type=2 GROUP BY Payments.UserID_R;
W>>>>>SELECT u.* FROM Users AS u WHERE u.ID IN (tmp.UserID_R) AND tmp.amount_sum<50;
W>>>>>DROP TABLE tmp;
W>>>>>
А>Да, это один запрос, — разве так нельзя? А>Не подскажете как же все таки этот запрос должен выглядеть? Что-то я уже заколебался варианты перебирать...
Здравствуйте, Аноним, Вы писали:
А>Да, это один запрос, — разве так нельзя? А>Не подскажете как же все таки этот запрос должен выглядеть? Что-то я уже заколебался варианты перебирать...
Если мне не изменяет память то несколько запросов можно только в 5м PHP делать.
А по поводу GROUP BY, гм .. ну если вы делаете такую ошибку, то может проще почитать теорию и понять как оно работает?
Re[6]: Запрос с временной таблицей в mySQL
От:
Аноним
Дата:
07.03.06 04:00
Оценка:
Здравствуйте, fidget, Вы писали:
А>>Да, это один запрос, — разве так нельзя? А>>Не подскажете как же все таки этот запрос должен выглядеть? Что-то я уже заколебался варианты перебирать...
F>Если мне не изменяет память то несколько запросов можно только в 5м PHP делать. F>А по поводу GROUP BY, гм .. ну если вы делаете такую ошибку, то может проще почитать теорию и понять как оно работает?
2 fidget: Заметано Действительно, не сталкивался с такими запросами раньше...