Goran Bibic Ответов: 1

Объединение из нескольких таблиц mssql


Мой код в порядке... результат есть...

poslovni_partner    UL. roba    ULR. ostalo    UL. Repromaterijal      Saldo  
MOZZART  DOO          630.20        93.60            292.50           1016.30  


Покажите мне данные только в том случае, если они существуют во всех 3 таблицах...если они не существуют, не показывайте...

Если не существует в одной таблице, чтобы показать 0.00

Какая-то помощь?

Что я уже пробовал:

select x1.poslovni_partner,   
CONVERT(decimal(16,2),(ISNULL(x1.ULR,0))) AS 'UL. roba',   
CONVERT(decimal(16,2),(ISNULL(x2.ULRO, 0))) as 'ULR. ostalo',   
CONVERT(decimal(16,2),(ISNULL(x3.ULRM, 0))) as 'UL. Repromaterijal',  
CONVERT(decimal(16, 2), (ISNULL(ULR, 0) + (ISNULL(ULRO, 0) + (ISNULL(ULRM, 0))))) as 'Saldo'    
from (select poslovni_partner, sum(iznos_sa_porezom) as ULR from(select poslovni_partner as poslovni_partner,  iznos_sa_porezom from dbo.mp_ulazni_racun_roba_lista where redni_broj  IS NOT NULL) a group by poslovni_partner) as x1 JOIN  
(select poslovni_partner, sum(iznos_sa_porezom) as ULRO from (select poslovni_partner as poslovni_partner,iznos_sa_porezom from dbo.mp_ulazni_racun_ostalo_lista where redni_broj  IS NOT NULL) b group by poslovni_partner) as x2 on x1.poslovni_partner = x2.poslovni_partner JOIN  
(select poslovni_partner, sum(iznos_sa_porezom) as ULRM from (select poslovni_partner as poslovni_partner,iznos_sa_porezom from dbo.mp_ulazni_racun_repromaterijal_lista where redni_broj  IS NOT NULL) b group by poslovni_partner) as  x3 on x1.poslovni_partner = x3.poslovni_partner  

MadMyche

Первое, что вам нужно сделать, это отформатировать этот беспорядок.

Meysam Tolouee

Вместо Join вы можете использовать Left Join; затем с помощью функции ISNULL вы можете изменить нулевые значения на ноль

1 Ответов

Рейтинг:
0

Goran Bibic

Я меняю свой код

select x1.poslovni_partner, 
CONVERT(decimal(16,2),(ISNULL(x1.ULR,0))) AS 'UL. roba', 
CONVERT(decimal(16,2),(ISNULL(x2.ULRO, 0))) as 'ULR. ostalo', 
CONVERT(decimal(16,2),(ISNULL(x3.ULRM, 0))) as 'UL. Repromaterijal',
CONVERT(decimal(16, 2), (ISNULL(ULR, 0) + (ISNULL(ULRO, 0) + (ISNULL(ULRM, 0))))) as 'Saldo'  
from (select poslovni_partner, sum(iznos_sa_porezom) as ULR from(select poslovni_partner as poslovni_partner,  iznos_sa_porezom from dbo.mp_ulazni_racun_roba_lista where redni_broj  IS NOT NULL) a group by poslovni_partner) as x1 FULL OUTER JOIN
(select poslovni_partner, sum(iznos_sa_porezom) as ULRO from (select poslovni_partner,iznos_sa_porezom from dbo.mp_ulazni_racun_ostalo_lista where redni_broj  IS NOT NULL) b group by poslovni_partner) as x2 on x1.poslovni_partner = x2.poslovni_partner FULL OUTER JOIN
(select poslovni_partner, sum(iznos_sa_porezom) as ULRM from (select poslovni_partner,iznos_sa_porezom from dbo.mp_ulazni_racun_repromaterijal_lista where redni_broj  IS NOT NULL) b group by poslovni_partner) as  x3 on x3.poslovni_partner = x1.poslovni_partner AND  x1.poslovni_partner = x3.poslovni_partner AND x2.poslovni_partner = x3.poslovni_partner AND x3.poslovni_partner = x2.poslovni_partner


Если не существует в таблице 1 имя партнера напишите null