Thread: How to use an alias name in the current select
Hello I have : SELECT t_orders_articles.k_id AS k_id ,t_orders_articles.quantity AS order_qty ,(SELECT sum(quantity) FROM t_deliveries_articles WHERE article_id = t_orders_articles.k_id) AS delivery_qty , (t_orders_articles.quantity - delivery_qty) AS qty FROM t_orders_articles ......; But it's not working I receive the error : ERROR : The column delivery_qty does not exist. How can I make that without having 2 select call ? Regards Guy
Hi, Guy Deleeuw <G.De_Leeuw@eurofer.be> writes: > SELECT > t_orders_articles.k_id AS k_id > ,t_orders_articles.quantity AS order_qty > ,(SELECT sum(quantity) FROM t_deliveries_articles WHERE article_id = > t_orders_articles.k_id) AS delivery_qty > , (t_orders_articles.quantity - delivery_qty) AS qty > FROM t_orders_articles > ......; > > How can I make that without having 2 select call ? Put it as a relation in a subquery, or use WITH if using 8.4. SELECT k_id, order_qty, quantity, delivery_qty, quantity - delivery_qty as qty FROM ( SELECT t_orders_articles.k_id AS k_id ,t_orders_articles.quantity AS order_qty ,(SELECT sum(quantity) FROM t_deliveries_articles WHERE article_id = t_orders_articles.k_id) AS delivery_qty , t_orders_articles.quantity FROM t_orders_articles ) as t; Or WITH t AS ( SELECT t_orders_articles.k_id AS k_id ,t_orders_articles.quantity AS order_qty ,(SELECT sum(quantity) FROM t_deliveries_articles WHERE article_id = t_orders_articles.k_id) AS delivery_qty , t_orders_articles.quantity FROM t_orders_articles ) SELECT k_id, order_qty, quantity, delivery_qty, quantity - delivery_qty as qty FROM t; Regards, -- dim
Hello Dimitri, Many thanks for your answers Regards Guy Le 24/03/10 20:09, Dimitri Fontaine a écrit : > Hi, > > Guy Deleeuw<G.De_Leeuw@eurofer.be> writes: > >> SELECT >> t_orders_articles.k_id AS k_id >> ,t_orders_articles.quantity AS order_qty >> ,(SELECT sum(quantity) FROM t_deliveries_articles WHERE article_id = >> t_orders_articles.k_id) AS delivery_qty >> , (t_orders_articles.quantity - delivery_qty) AS qty >> FROM t_orders_articles >> ......; >> >> How can I make that without having 2 select call ? >> > Put it as a relation in a subquery, or use WITH if using 8.4. > > SELECT k_id, order_qty, quantity, delivery_qty, > quantity - delivery_qty as qty > FROM ( > SELECT > t_orders_articles.k_id AS k_id > ,t_orders_articles.quantity AS order_qty > ,(SELECT sum(quantity) FROM t_deliveries_articles WHERE article_id = > t_orders_articles.k_id) AS delivery_qty > , t_orders_articles.quantity > FROM t_orders_articles > ) as t; > > > Or > > WITH t AS ( > SELECT > t_orders_articles.k_id AS k_id > ,t_orders_articles.quantity AS order_qty > ,(SELECT sum(quantity) FROM t_deliveries_articles WHERE article_id = > t_orders_articles.k_id) AS delivery_qty > , t_orders_articles.quantity > FROM t_orders_articles > ) > SELECT k_id, order_qty, quantity, delivery_qty, > quantity - delivery_qty as qty > FROM t; > > Regards, >