Псевдонимы
SELECT pro.id, SUM( tas.t_value ) AS sumtas, sumtas FROM projects pro
LEFT JOIN tasks tas ON pro.id = tas.id
Пишет что sumtas неизвестное поле. Как правильно превдонимы задать для колонки?
Заранее спасибо.
MySQL. Запрос такой:
SELECT pro.id, SUM( tas.t_value ) AS sumtas, sumtas FROM projects pro
LEFT JOIN tasks tas ON pro.id = tas.id
Пишет что sumtas неизвестное поле. Как правильно превдонимы задать для колонки?
Заранее спасибо.
SELECT pro.id, SUM( tas.t_value ) AS sumtas FROM projects pro
LEFT JOIN tasks tas ON pro.id = tas.id
Так думую все ок будет.
SELECT pro.id, SUM( tas.t_value ) AS sumtas, sumtas FROM projects pro
LEFT JOIN tasks tas ON pro.id = tas.id
Поле выделенное жирным видим? Вот на него жалуется.
Нет. Ты невнимально прочитал.
SELECT pro.id, SUM( tas.t_value ) AS sumtas, sumtas FROM projects pro
LEFT JOIN tasks tas ON pro.id = tas.id
Поле выделенное жирным видим? Вот на него жалуется.
А почему бы ему на него не жаловаться ? Разве такое поле( sumtas ) у тебя есть.. ? Когда ты сделал вот эту операцию: SUM( tas.t_value ) AS sumtas ты уже сформировал и выбрал его.
Я же могу его использовать в ORDER BY,
почему я не могу его использовать в другом месте?
Например, пройдёт:
SELECT pro.id, SUM( tas.t_value ), SUM( tas.t_value ) FROM projects pro
LEFT JOIN tasks tas ON pro.id = tas.id
и пройдёт
SELECT pro.id, SUM( tas.t_value ) AS sumtas FROM projects pro
LEFT JOIN tasks tas ON pro.id = tas.id ORDER BY sumtas
Разве SUM( tas.t_value ) AS sumtas это не выборка сумма + алиас?
Я же могу его использовать в ORDER BY,
почему я не могу его использовать в другом месте?
Например, пройдёт:
SELECT pro.id, SUM( tas.t_value ), SUM( tas.t_value ) FROM projects pro
LEFT JOIN tasks tas ON pro.id = tas.id
и пройдёт
SELECT pro.id, SUM( tas.t_value ) AS sumtas FROM projects pro
LEFT JOIN tasks tas ON pro.id = tas.id ORDER BY sumtas
Помоему все логично, ты какую цель приследовал сделав так:
SELECT pro.id, SUM( tas.t_value ) AS sumtas, sumtas
и чем потвоему это отличается от этого:
SELECT pro.id, SUM( tas.t_value ) AS sumtas
SELECT col1, SUM(col2) as sumcol, SUM(col3) ad sumcol2 IF ( sumcol-col1>0, sumcol2, col1) FROM table ...
Алиас мне нужен для дальнейших операций в этом запросе, чтобы не писать заново. Это был тестовый пример - на самом делал запрос намного больше, и алиас будет использовать примерно так:
SELECT col1, SUM(col2) as sumcol, SUM(col3) ad sumcol2 IF ( sumcol-col1>0, sumcol2, col1) FROM table ...
А что это за конструкция такая интересная замени if на where и все будет, ок..
А что это за конструкция такая интересная замени if на where и все будет, ок..
Нет, конструкция там большая (не то что в примере). И IF используется для отображения разных значених колонки, при различных ситуациях. Меня сейчас больше интересует - можно ли в запросе между SELECT и FROM использовать алиасы, и как.
Нет, конструкция там большая (не то что в примере). И IF используется для отображения разных значених колонки, при различных ситуациях. Меня сейчас больше интересует - можно ли в запросе между SELECT и FROM использовать алиасы, и как.
я не понимаю, что вы хотити, а вы что то темните
Вы и так ее используете когда определяете.
я не понимаю, что вы хотити, а вы что то темните
Вы и так ее используете когда определяете.
Ничего я не темню. Если вернуть в начало разговора и внимательно прочитать первый пост - то там было написано, что выдаётся ошибка, поле sumtas не найдено. Мне нужно заальясить несколько полей и обращаться к ним по алиасу.
Elementary example:
SELECT t.col1 AS col, t.col2, col*t.col2 FROM table t
Ну куда проще-то, а? Поле col в третем поле даст ошибку. а если написать t.col1*t.col2 то будет всё нормально.
Если нельзя использовать алиасы между SELECT и FROM - то так мне и напишите - "Нельзя", если можно, то так и напишите -"Можно, и это делается вот так...", если не сталкивались - "Не сталкивался"
пример с сайта mysql.com
SELECT (@aa:=id) AS a, (@aa+3) AS b FROM table_name
Ничего я не темню. Если вернуть в начало разговора и внимательно прочитать первый пост - то там было написано, что выдаётся ошибка, поле sumtas не найдено. Мне нужно заальясить несколько полей и обращаться к ним по алиасу.
Elementary example:
SELECT t.col1 AS col, t.col2, col*t.col2 FROM table t
Ну куда проще-то, а? Поле col в третем поле даст ошибку. а если написать t.col1*t.col2 то будет всё нормально.
Если нельзя использовать алиасы между SELECT и FROM - то так мне и напишите - "Нельзя", если можно, то так и напишите -"Можно, и это делается вот так...", если не сталкивались - "Не сталкивался"
ЧЕтаю, одну книжку mssql2000 для начинающих правдо, но вот помнится там вообще говорили что эти пзевданимы как бы ля пользователя чтобы когда ты ему поля вывел, у них названия в заголовки были человечиские.
А если говорить конкретно то думаю: Нельзя"