2017-06-21 48 views
-1

条款所以我有一系列的分期付款计划的选择查询,我想运行一个查询返回的余额五月每个时间表加入多个与在每个

我的查询现在,看起来像这样

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 

这是它返回

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  | 

有没有什么办法,你知道的,这将返回数据,不空值?

Picture of database

+0

SELECT COLUMN_NAMES FROM表名WHERE列名IS NOT NULL; – 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。因此,你从你的子查询得到的收益将不包括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运行一个子查询,它是否仍然返回NULL? – Isaiah3015

+0

当我运行查询作为JOIN而不是FULL JOIN我得到零结果 我也试着按照你的建议只运行1个子查询,结果集不改变 – Danielle

1

你可以使用一个UNION

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