2017-06-21 10 views
-1

ための句はだから私は償却スケジュールのシリーズを持っているところで複数選択クエリに参加して、私は今、各スケジュール

私のクエリに月の月の残高を返すようにクエリを実行したいのですが、null値なしでデータを返します。あなたが知っているどのような方法がある、これはそれが

date  | balance  | date  | balance | date  | balance | date  | balance | date  | balance | 
------------ | ------------ | ------------ | ------------ | ------------ | ------------ | ------------ | ------------ | ------------ | ------------ | 
NULL   | NULL   | 2017-05-31 | 563275.00 | NULL   | NULL   | NULL   | NULL   | NULL   | NULL   | 
------------ | ------------ | ------------ | ------------ | ------------ | ------------ | ------------ | ------------ | ------------ | ------------ | 
2017-05-31 | 896337.00 | NULL   | NULL   | NULL   | NULL   | NULL   | NULL   | NULL   | NULL   | 
------------ | ------------ | ------------ | ------------ | ------------ | ------------ | ------------ | ------------ | ------------ | ------------ | 
NULL   | NULL   | NULL   | NULL   | 2017-05-31 | 3746167.00 | NULL   | NULL   | NULL   | NULL   | 
------------ | ------------ | ------------ | ------------ | ------------ | ------------ | ------------ | ------------ | ------------ | ------------ | 
NULL   | NULL   | NULL   | NULL   | NULL   | NULL   | 2017-05-01 | 474774.00 | NULL   | NULL   | 
------------ | ------------ | ------------ | ------------ | ------------ | ------------ | ------------ | ------------ | ------------ | ------------ | 
NULL   | NULL   | NULL   | NULL   | NULL   | NULL   | NULL   | NULL   | 2017-05-31 | 127987.00  | 

を返すものです。この

select ace.date, ace.balance, aacs.date, aacs.balance, 
axl.date, axl.balance, la.date, la.balance, 
mrh.date, mrh.balance 
from 
(select * 
from [Entity1] 
where MONTH (date) = 05 AND YEAR (date) = 2017) as ACE 
full join 
(select * 
from [Entity2] 
where MONTH (date) = 05 AND YEAR (date) = 2017) as AACS 
on ACE.GLCredited = AACS.GLCredited 
full join 
(select * 
from [Entity3] 
where MONTH (date) = 05 AND YEAR (date) = 2017) as AXL 
on AXL.GLCredited = AACS.GLCredited 
full join 
(select * 
from [Entity4] 
where MONTH (date) = 05 AND YEAR (date) = 2017) as LA 
on LA.GLCredited = AXL.GLCredited 
full join 
(select * 
from [Entity5] 
where MONTH (date) = 05 AND YEAR (date) = 2017) as MRH 
on MRH.GLCredited = LA.GLCredited 

ようになりますか?

Picture of database

+0

SELECT COLUMN_NAMES。 – Tarzan

+0

それを試してみてください。同じ結果。 – Danielle

+0

出力に関して、入力のように見えるものを正確に指定する必要があります。あなたが私達に与えてくれたのは、漠然とした要約と、あなたが望むやり方をしないクエリとその出力の例です。私たちはあなたの心を読むことができません。 [mcve]も読んで行動してください。また、そのリンクの代わりに可能な限りテキストを使用してください。 – philipxy

答えて

1

あなたは参加しない組合でこれを行うだろう。次のようなものがあります。

select date, balance 
from [Entity1] 
where MONTH (date) = 05 AND YEAR (date) = 2017) as ACE 
union 
select date, balance 
from [Entity2] 
where MONTH (date) = 05 AND YEAR (date) = 2017) as AACS 
on ACE.GLCredited = AACS.GLCredited 
union 
select date, balance 
from [Entity3] 
where MONTH (date) = 05 AND YEAR (date) = 2017) as AXL 
on AXL.GLCredited = AACS.GLCredited 
union 
select date, balance 
from [Entity4] 
where MONTH (date) = 05 AND YEAR (date) = 2017) as LA 
on LA.GLCredited = AXL.GLCredited 
union 
select date, balance 
from [Entity5] 
where MONTH (date) = 05 AND YEAR (date) = 2017) as MRH 
on MRH.GLCredited = LA.GLCredited 
+0

あなたが入力した通りに動作していないと、エイリアスはそれを投げていました。 私はそれを修正した後、日付と残高の一覧が表示されますが、残高は – Danielle

+0

のエンティティを識別するのに役立ちます。 – MikeS

+0

のように静的な値の列を追加するだけです。夜は完璧です。これは素晴らしい。助けてくれてありがとうMike! – Danielle

0

すべてのサブクエリに簡単にIS NOT NULLを追加できます。したがって、あなたは、サブクエリから取得リターンはあなたがUNIONを使用することができNULL

.... 
    from 
    from [Entity1] 
    where MONTH (date) = 05 AND YEAR (date) = 2017 and *DATE is not null*) as ACE 
    join 
(select * 
    from [Entity2] 
    where MONTH (date) = 05 AND YEAR (date) = 2017 *and BALANCE is not null*) as AACS 
    on ACE.GLCredited = AACS.GLCredited 
    join 
+0

それを試してみてください。驚くべきことに、上記と同じ結果を返します。 – Danielle

+0

あなたはJOINをやってみましたが、フル・ジョインではありませんか? DATE IS NOT NULLでサブクエリのうちの1つだけを実行すると、それでもNULLが返されますか? – Isaiah3015

+0

FULL JOINではなくJOINとしてクエリを実行すると、結果は0になります 私はサブクエリの1つだけを実行しようとしましたが、結果セットは変更されません。 – Danielle

1

は含まれません:COLUMN_NAMEがNULLでないTABLE_NAME FROM

Select * 
FROM 
(
select 'ACE' as ScheduleName, date, balance from [Entity1] 
union 
select 'AACS' as ScheduleName, date, balance from [Entity2] 
union 
select 'AXL' as ScheduleName, date, balance from [Entity3] 
union 
select 'LA' as ScheduleName, date, balance from [Entity4] 
union 
select 'MRH' as ScheduleName, date, balance from [Entity5] 
)u 
where MONTH (date) = 05 AND YEAR (date) = 2017