🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: pl.comp.lang.delphi.bazy-danych
4 messages
4 total messages Started by konsul41 Thu, 03 Aug 2017 08:04
SQL
#82834
Author: konsul41
Date: Thu, 03 Aug 2017 08:04
14 lines
1312 bytes
Baza to Postgres ale wolałbym uniwersalni


W bazie są wiersze z miesiącem od 8 do 12,
muszę mieć wykaz od 1 do 12 z wartością 0 dla miesięcy których nie ma w 
bazie.

Ten SQL zwraca mi tylko wiersze z bazy
select id_srodektrwaly::numeric,miesiac::numeric,miesodpis::numeric from 
planamortyzacji where rok='2017' and id_srodektrwaly=57


Pytanie jak uzupełnić wiersze w wyniku zapytania od 1 do 7 przy czym nie 
zawsze jest to 1-7, a często inaczej.
Re: SQL
#82835
Author: konsul41
Date: Thu, 03 Aug 2017 09:07
12 lines
1238 bytes

Próbowałem tak
SELECT generate_series(1,12) AS mies 
,plan.id_srodektrwaly,plan.miesodpis from planamortyzacji AS plano
LEFT JOIN (select miesiac,id_srodektrwaly, miesodpis from 
planamortyzacji where rok='2017' and id_srodektrwaly=16 and 
miesiac=plano.mies)AS plan ON plano.miesiac=plan.miesiac
where rok='2017'
order by mies

ale w podzapytaniu nie mogę użyć plano.miesiac
Re: SQL
#82836
Author: konsul41
Date: Thu, 03 Aug 2017 09:25
8 lines
1250 bytes
Chyba znalazłem

SELECT generate_series::numeric,id_srodektrwaly::numeric,miesodpis::numeric
   FROM generate_series(1,12)
   LEFT JOIN (select miesiac::numeric,id_srodektrwaly::numeric, 
miesodpis::numeric from planamortyzacji where rok='2017' and 
id_srodektrwaly=57)AS plan ON plan.miesiac =generate_series
Re: SQL
#82837
Author: konsul41
Date: Thu, 03 Aug 2017 09:38
13 lines
1541 bytes
Działa to
SELECT *
   FROM
     crosstab( 'SELECT 57::numeric AS id_srodektrwaly, 
generate_series::numeric,coalesce(miesodpis::numeric,0)
   FROM generate_series(1,12)
   LEFT JOIN (select miesiac::numeric,id_srodektrwaly::numeric, 
miesodpis::numeric from planamortyzacji where rok=''2017'' and 
id_srodektrwaly=57)AS plan ON plan.miesiac =generate_series')
     AS final_result(id_srodektrwaly numeric,m01 numeric,m02 numeric,m03 
numeric,m04 numeric,m05 numeric,m06 numeric,m07 numeric,m08 numeric,m09 
numeric,m10 numeric,m11 numeric,m12 numeric)
    ;
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads