Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Алиасы ?!? / 2 сообщений из 2, страница 1 из 1
27.07.2006, 11:13
    #33881525
Igor Kozlov
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Алиасы ?!?
Здравствуйте Все!

Помогите, пожалуйста, с алиасами в большом запросе.

SELECT mfd.order_no, mfd.drawing_no, mfd.material_name, u.short_name AS unit, m.unit_weight, mfd.total_length::numeric(10,2) AS total_length,
CASE
WHEN u.short_name::text = 'шт'::text THEN 0::numeric
ELSE mfd.total_length * (( SELECT variables.val
FROM variables
WHERE variables.name::text = 'allowed_waste_percent'::text)) / 100::numeric
END::numeric(10,2) AS waste , -- (!) АЛИАС (!)
total_length + waste AS all_in_all_length, -- ВОТ ЗДЕСЬ ОШИБКА: ERROR: column "waste" does not exist
(mfd.total_length * m.unit_weight / 1000::numeric)::numeric(10,2) AS total_weight
FROM materials_for_drawings mfd, raw_materials m, get_raw_materials() mf(id, name), units u, raw_material_groups mg
WHERE mf.name = mfd.material_name AND m.raw_material_id_pkey = mf.id AND u.unit_id_pkey = mg.unit_id AND mg.raw_material_group_id_pkey = m.raw_material_group_id
ORDER BY mfd.order_no, mfd.drawing_no, mfd.material_name;

Разве нельзя использовать только-что объявленный алиас в следующем поле?

Большое спасибо!
...
Рейтинг: 0 / 0
27.07.2006, 11:41
    #33881659
фффф
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Алиасы ?!?
Нет, в соседнем поле нельзя алиас использовать. В group by / having - пожалуйста.
Выход - заключить часть вычислений во вложенный запрос или в представление
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
SELECT waste, total_length + waste AS all_in_all_length, ...
FROM (SELECT ... as waste FROM ...)

или

CREATE VIEW waste_calculation AS SELECT ... as waste FROM ...

SELECT waste, total_length + waste AS all_in_all_length, ... 
  FROM waste_calculation WHERE ...
...
Рейтинг: 0 / 0
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Алиасы ?!? / 2 сообщений из 2, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]