Re: Combine query views into one SQL string

Поиск
Список
Период
Сортировка
От yaubi@yaubi.com (Yoann)
Тема Re: Combine query views into one SQL string
Дата
Msg-id 70c8063b.0109120218.20505f00@posting.google.com
обсуждение исходный текст
Ответ на Re: Combine query views into one SQL string  ("Maik" <K.Maik@web.de>)
Список pgsql-sql
eimas@lycos.com (Eimas) wrote in message news:<63e57aa8.0109091520.4f975abd@posting.google.com>...
> "Maik" <K.Maik@web.de> wrote in message news:<9na15r$ku4$1@narses.hrz.tu-chemnitz.de>...
> > Its clear, union concat the two results.
> > 
> > But he can also use this join version, if its the intention.
> > 
> > select t1.id, sum(t1.amount), t2.id, sum(t2.amount) from table1 as t1,
> > table2 as t2 where t1.id=t2.id;
> > 
> > Ciao Maik
> 
> This is not right, i wouldnt even bather you if this was the simple
> answer.
> 
> t1.id=t2.id would mean in doubled or tripled aggregation,
> since t1.id and t2.id are not unique, thats why I had to aggregate
> them in first Q1, Q2 querires, and link them by ID in the last one.
> 
> I don't understand what UNION got to do here. then you probably have
> to make three union links of inner, left and right joined tables.
> 
> This is not that easy as it seems.
> Is there a universal SQL string "expanding" rules, like in math or so?
> 
> Thanks


Hi,

I think a got it. Just try :

SELECT DISTINCT t.ID,  (SELECT SUM(amount)   FROM Table1   WHERE ID = t.ID),  (SELECT SUM(amount)   FROM Table2   WHERE
ID= t.ID)
 
FROM Table1 AS t
UNION
SELECT DISTINCT t.ID,  (SELECT SUM(amount)   FROM Table1   WHERE ID = t.ID),  (SELECT SUM(amount)   FROM Table2   WHERE
ID= t.ID)
 
FROM Table2 AS t;

There are in fact two queries : one scaning for the ID's from Table1
and the other from Table2 in order to calcutate the sums for ALL the
ID's.
For each scaned ID, it calculates the corresponding sum in each of the
two tables. If the ID doesn't exist in one table, the sum return a
Null value, but doesn't affect the other.

I hope this query is what you are looking for.
Yoann


В списке pgsql-sql по дате отправления:

Предыдущее
От: A_Schnabel@t-online.de (Andre Schnabel)
Дата:
Сообщение: Re: SQL request change when upgrade from 7.0.2 to 7.1.3
Следующее
От: yaubi@yaubi.Com (Yoann)
Дата:
Сообщение: Re: How do I extract ONE particular field, when multiple table contain the same field name?