Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Как использовать псевдоним столбца для дальнеших вычислений (MySQL)?

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
nkl
Отправлено: 21 Марта, 2014 - 08:36:23
Post Id



Посетитель


Покинул форум
Сообщений всего: 305
Дата рег-ции: Янв. 2012  


Помог: 1 раз(а)




Имеется запрос вида:
CODE (SQL):
скопировать код в буфер обмена
  1. SELECT
  2.     "home" AS game_type,
  3.     COUNT(*) AS games,
  4.     SUM(tv.first_team_score) AS scored,
  5.     SUM(tv.second_team_score) AS missed,
  6.     TRUNCATE((SUM(tv.first_team_score)/COUNT(*)), 2) AS average_scores,
  7.     TRUNCATE((SUM(tv.second_team_score)/COUNT(*)), 2) AS average_miss,
  8.     (TRUNCATE((SUM(tv.first_team_score)/COUNT(*)), 2) + TRUNCATE((SUM(tv.second_team_score)/COUNT(*)), 2)) AS effectiveness
  9.     FROM betjournal2.bs_team_tournament_stat AS tv
  10.     WHERE
  11.       tv.first_team_id = 8

Как вы видите average_scores, average_miss и effectiveness можно получить оперируя псевдонимами games, scored и missed. Но почему-то когда я пытаюсь это сделать, мускул выдает ошибку Unknown column [games или scored или missed] in field list. Что я делаю не так? Получается мускул все это заново считает, хотя часть необходимых значений уже получена. Что за тупняк? Растерялся
 
 Top
T1grOK
Отправлено: 21 Марта, 2014 - 09:10:29
Post Id



Частый гость


Покинул форум
Сообщений всего: 129
Дата рег-ции: Июнь 2013  


Помог: 7 раз(а)




nkl пишет:
Как вы видите average_scores, average_miss и effectiveness можно получить...

Нельзя. Образно говоря в SELECT колонки друг о друге ничего "не знают". Все сводится к принципу работы СУБД с табличными данными.

(Отредактировано автором: 21 Марта, 2014 - 09:11:44)



-----
Mysql, Postgresql, Redis, Memcached, Unit Testing, CI, Kohana, Yii, Phalcon, Zend Framework, Joomla, Open Cart, Ymaps, VK Api
 
 Top
nkl
Отправлено: 21 Марта, 2014 - 11:01:04
Post Id



Посетитель


Покинул форум
Сообщений всего: 305
Дата рег-ции: Янв. 2012  


Помог: 1 раз(а)




Спасибо. Буду знать!
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« SQL и Архитектура БД »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB