s
А так — покажите пример таблиц или как-то подробнее объясните, что именно нужно.
Size: a a a
s
YS
AD
AD
select t1.a,
coalesce(t2_cred.cred, t2_debet.debet) as cred_debet
from t1
left join t2 as t2_cred
on t1.field_a = t2_cred.field_a
left join t2 as t2_debet
on t1.field_b = t2_debet.field_b
s
AD
s
YS
s
select a.name,
(select sum_val
from table_1 d1
where d1.dat_doc between '01.10.2020' and '30.10.2020'
and (d1.ls_cl like '10501%' or d1.ls_cl like '10101%')
and (d1.naz_pla like '45020%' or d1.naz_pla like '45021%' or
d1.naz_pla like '45022%' or d1.naz_pla like '45023%' or
d1.naz_pla like '45024%')
and d1.ls_cl = a.account) sub1, --debet
(select sum_val
from table_1
where d1.dat_doc between '01.10.2020' and '30.10.2020'
and (d1.ls_cor like '20201%' or d1.ls_cor like '20204%')
and (d1.naz_pla like '45020%' or d1.naz_pla like '45021%' or
d1.naz_pla like '45022%' or d1.naz_pla like '45023%' or
d1.naz_pla like '45024%'
and d1.ls_cor = a.account)) sub2 --kredit
from acc a -- main table Мне нужно чтобы он взял инфу с мэйна. Если кредит то по кредиту, если дебет по дебету.
YS
select a.name,
(select sum_val
from table_1 d1
where d1.dat_doc between '01.10.2020' and '30.10.2020'
and (d1.ls_cl like '10501%' or d1.ls_cl like '10101%')
and (d1.naz_pla like '45020%' or d1.naz_pla like '45021%' or
d1.naz_pla like '45022%' or d1.naz_pla like '45023%' or
d1.naz_pla like '45024%')
and d1.ls_cl = a.account) sub1, --debet
(select sum_val
from table_1
where d1.dat_doc between '01.10.2020' and '30.10.2020'
and (d1.ls_cor like '20201%' or d1.ls_cor like '20204%')
and (d1.naz_pla like '45020%' or d1.naz_pla like '45021%' or
d1.naz_pla like '45022%' or d1.naz_pla like '45023%' or
d1.naz_pla like '45024%'
and d1.ls_cor = a.account)) sub2 --kredit
from acc a -- main table Мне нужно чтобы он взял инфу с мэйна. Если кредит то по кредиту, если дебет по дебету.
s
s
YS
and (d1.naz_pla like '45020%' or d1.naz_pla like '45021%' or
d1.naz_pla like '45022%' or d1.naz_pla like '45023%' or
d1.naz_pla like '45024%'
and d1.ls_cor = a.account)
YS
GT
explain (analyze,buffers) SELECT OAV."ID",OAV."TEXT_VALUE" FROM public."AO_8542F1_IFJ_OBJ_ATTR_VAL" OAV JOIN public."AO_8542F1_IFJ_OBJ_ATTR" OA ON OA."ID" = OAV."OBJECT_ATTRIBUTE_ID" WHERE OA."OBJECT_TYPE_ATTRIBUTE_ID" IN (529, 10, 506, 143) ;
QUERY PLAN
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Gather (cost=1000.57..712718.82 rows=599184 width=34) (actual time=0.474..2319.057 rows=655844 loops=1)
Workers Planned: 4
Workers Launched: 4
Buffers: shared hit=3296662 read=258958
-> Nested Loop (cost=0.56..651800.42 rows=149796 width=34) (actual time=0.111..2204.502 rows=131169 loops=5)
Buffers: shared hit=3296662 read=258958
-> Parallel Seq Scan on "AO_8542F1_IFJ_OBJ_ATTR" oa (cost=0.00..425675.07 rows=152918 width=8) (actual time=0.053..1049.557 rows=131169 loops=5)
Filter: ("OBJECT_TYPE_ATTRIBUTE_ID" = ANY ('{529,10,506,143}'::integer[]))
Rows Removed by Filter: 7888265
Buffers: shared hit=13870 read=258958
-> Index Scan using index_ao_8542f1_ifj228666017 on "AO_8542F1_IFJ_OBJ_ATTR_VAL" oav (cost=0.56..1.47 rows=1 width=42) (actual time=0.008..0.008 rows=1 loops=655844)
Index Cond: ("OBJECT_ATTRIBUTE_ID" = oa."ID")
Buffers: shared hit=3282792
Planning time: 0.326 ms
Execution time: 2340.710 ms
s
and (d1.naz_pla like '45020%' or d1.naz_pla like '45021%' or
d1.naz_pla like '45022%' or d1.naz_pla like '45023%' or
d1.naz_pla like '45024%'
and d1.ls_cor = a.account)
YS
s
GT
explain (analyze,buffers) SELECT OAV."ID",OAV."TEXT_VALUE" FROM public."AO_8542F1_IFJ_OBJ_ATTR_VAL" OAV JOIN public."AO_8542F1_IFJ_OBJ_ATTR" OA ON OA."ID" = OAV."OBJECT_ATTRIBUTE_ID" WHERE OA."OBJECT_TYPE_ATTRIBUTE_ID" IN (529, 10, 506, 143) ;
QUERY PLAN
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Gather (cost=1000.57..712718.82 rows=599184 width=34) (actual time=0.474..2319.057 rows=655844 loops=1)
Workers Planned: 4
Workers Launched: 4
Buffers: shared hit=3296662 read=258958
-> Nested Loop (cost=0.56..651800.42 rows=149796 width=34) (actual time=0.111..2204.502 rows=131169 loops=5)
Buffers: shared hit=3296662 read=258958
-> Parallel Seq Scan on "AO_8542F1_IFJ_OBJ_ATTR" oa (cost=0.00..425675.07 rows=152918 width=8) (actual time=0.053..1049.557 rows=131169 loops=5)
Filter: ("OBJECT_TYPE_ATTRIBUTE_ID" = ANY ('{529,10,506,143}'::integer[]))
Rows Removed by Filter: 7888265
Buffers: shared hit=13870 read=258958
-> Index Scan using index_ao_8542f1_ifj228666017 on "AO_8542F1_IFJ_OBJ_ATTR_VAL" oav (cost=0.56..1.47 rows=1 width=42) (actual time=0.008..0.008 rows=1 loops=655844)
Index Cond: ("OBJECT_ATTRIBUTE_ID" = oa."ID")
Buffers: shared hit=3282792
Planning time: 0.326 ms
Execution time: 2340.710 ms
s