Re: Subquery with multiple rows

From: Mohd Hazmin Zailan <mohdhazminzailan(at)gmail(dot)com>
To: Weiss, Jörg <J(dot)Weiss(at)dvz-mv(dot)de>
Cc: pgsql-sql(at)postgresql(dot)org
Subject: Re: Subquery with multiple rows
Date: 2016-06-14 15:42:22
Message-ID: CAAQNCaDU4BWmY73CGCq-0nktC7zud3CV25Nv67J9+yG0XjCu4Q@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-sql

Hi,

Why don't you join table_a and all_std and leave " WHERE (a.status <=5 AND
status = 5 AND foerd_id IN (SELECT foerd_id FROM foerds WHERE mass_id =
'55896') " do fix until got the result you wanted. Sorry not showing you in
detail, just to give idea if it is logic for your solution.

Thanks
On Jun 14, 2016 2:22 PM, "Weiss, Jörg" <J(dot)Weiss(at)dvz-mv(dot)de> wrote:

> Hi all!
>
>
>
> How can I outsource a subquery?
>
>
>
> An Example:
>
> SELECT DISTINCT a.*,
>
> ( SELECT SUM(std)
>
> FROM all_std
>
> WHERE (a.status <=5 AND status = 5)
>
> AND foerd_id IN (SELECT foerd_id FROM foerds WHERE mass_id =
> '55896')
>
> ) AS done_std
>
> ( SELECT SUM(anerk_std)
>
> FROM all_std
>
> WHERE (a.status >5 AND status < 5)
>
> AND foerd_id IN (SELECT foerd_id FROM foerds WHERE mass_id =
> '55896')
>
> ) AS accepted_std
>
> FROM table_a a
>
> WHERE a.mass_id = '55896';
>
>
>
> The sub-subquery is “SELECT foerd_id FROM foerds WHERE mass_id = '55896')”
> an delivers more than one row.
>
>
>
> Now I want to run the subquery only one time.
>
>
>
> I tried this:
>
>
>
> SELECT DISTINCT a.*,
>
> ( SELECT SUM(std)
>
> FROM all_std
>
> WHERE (a.status <=5 AND status = 5)
>
> AND foerd_id IN (f.foerd_id)
>
> ) AS done_std,
>
> ( SELECT SUM(anerk_std)
>
> FROM all_std
>
> WHERE (a.status >5 AND status < 5)
>
> AND foerd_id IN (f.foerd_id)
>
> ) AS accepted_std
>
> FROM table_a a,
>
> (SELECT foerd_id FROM foerds WHERE mass_id = '55896') f
>
> WHERE a.mass_id = '55896';
>
>
>
> But the result is not correct because I got one row for every row of the
> of “f.foerd_id”.
>
> Allowed is only one row.
>
>
>
> How must the SQL looks like to get the right result?
>
>
>
>
>
>
>
>
>
> Regards…
>
>
>
>
>
>
>
> Mit freundlichen Grüßen
>
> J. Weiss
>
>
>
> Entwickler Sachgebiet GEW / e-Lösungen
>
> E-Mail: j(dot)weiss(at)dvz-mv(dot)de
>
> Telefon: +49 (3 85) 48 00 351
>
> Telefax: +49 (3 85) 48 00 98 351
> Internet: www.dvz-mv.de
>
> _____________________________________
> DVZ Datenverarbeitungszentrum
> Mecklenburg-Vorpommern GmbH
> Lübecker Str. 283 - 19059 Schwerin
> Sitz der Gesellschaft: Schwerin | Eintrag im Handelsregister: HRB 187 /
> Amtsgericht Schwerin
> Geschäftsführer: Hubert Ludwig | Aufsichtsratsvorsitzender: Staatssekretär
> Peter Bäumer
> _____________________________________
>
>
>

In response to

Browse pgsql-sql by date

  From Date Subject
Next Message Herwig Goemans 2016-06-20 10:06:26 ANSI JOINS versus , like JOINS
Previous Message 2016-06-14 15:13:01 Re: Subquery with multiple rows