Ok, sò che viene eseguita prima la subquery e poi la outer, la subquery è totalmente indipendende dalla outer e non può utilizzare valori della stessa.

Quindi il mio problema, ho 3 semplici tabelle:

CREATE TABLE customer (
id serial NOT NULL,
name character(50)
);

CREATE TABLE p_orders (
id serial NOT NULL,
id_customer integer NOT NULL,
date date DEFAULT now(),
code character(5)
);
CREATE TABLE p_items (
id serial NOT NULL,
id_order integer NOT NULL,
descr character(250),
price money
);
E voglio elaborare una queyr che mi restituisca l'elenco dei clienti, il numero totale di ordini che hanno e la somma degli oggetti di tutti gli ordini.. insomma il totale completo...

Da qui le mie domande:
1. E' possibile farlo con una sola query (e subquery), o devo farne due distinte, magari appoggiarmi a una vista;
2. Conviene in generale (mantenibilità del codice, velocità della query risultante, ecc..) fare un'unica query, o conviene farne due?

La query che uso io è:
Codice PHP:
SELECT
    customer
.id AS id_cliente,
    
customer.name,
    
COUNT(p_orders.id) AS num_orders
    
--, (
    --
SELECT
    
--    SUM(price)
    --
FROM
    
--    p_items
    
--    INNER JOIN p_orders ON (p_items.id_order p_orders.id)
    --    
INNER JOIN customer ON (customer.id p_orders.id_customer)
    --
WHERE customer.id id_cliente
    
--) AS total_money
FROM
    customer
    INNER JOIN p_orders ON 
(p_orders.id_customer customer.id)
GROUP BY
    customer
.id,
    
customer.name,
    
p_orders.id_customer 
che funziona, ma riporta solo il numero di ordini totale per cliente.. la subquery commentata fallisce miseramente.

Idee?


p.s: se può servire, lavoro su postgres.. ma dovrebbe essere un problema di puro sql