How to use an alias name in the current select

How to use an alias name in the current select

am 24.03.2010 17:42:10 von De Leeuw Guy

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


--
Sent via pgsql-admin mailing list (pgsql-admin@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-admin

Re: How to use an alias name in the current select

am 24.03.2010 20:09:18 von Dimitri Fontaine

Hi,

Guy Deleeuw 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

--
Sent via pgsql-admin mailing list (pgsql-admin@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-admin

Re: How to use an alias name in the current select

am 25.03.2010 08:18:43 von De Leeuw Guy

Hello Dimitri,

Many thanks for your answers

Regards
Guy

Le 24/03/10 20:09, Dimitri Fontaine a =E9crit :
> Hi,
>
> Guy Deleeuw writes:
> =20
>> SELECT
>> t_orders_articles.k_id AS k_id
>> ,t_orders_articles.quantity AS order_qty
>> ,(SELECT sum(quantity) FROM t_deliveries_articles WHERE artic=
le_id =3D
>> 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 ?
>> =20
> 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 artic=
le_id =3D
> 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 artic=
le_id =3D
> 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,
> =20

--=20
Sent via pgsql-admin mailing list (pgsql-admin@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-admin