加入两个没有共同点的select语句 [英] Join 2 select statements that has nothing in common

查看:77
本文介绍了加入两个没有共同点的select语句的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有执行不同任务的存储过程,但是我想将它们中的一些放在一起以减少在数据库中创建的存储过程的数量。许多程序都基于年份统计数据,这是一个例子:

I have stored procedures that perform different tasks, but I'd like to put some of them together to reduce the amount of Stored procedures created in the database. Many of the procedures are based on years statistics and here is an example:

Select 
DATENAME(MONTH, DATE_) AS Date,
 count(distinct VATNUMBER) As Count
from 
   (
    select VATNUMBER, DATE_ = min(DATE_)
    from
    ACCOUNTS a inner join CUSTTABLE b
    on a.ID= b.ID
    where ITEMNUMBER in(7055,7056,7059) AND YEAR(a.DATE_) = '2017'
    AND VATNUMBER NOT IN (
    select VATNUMBER
    from
    ACCOUNTS a inner join CUSTTABLE b
    on a.ID= b.ID
    where ITEMNUMBER in(7055,7056,7059)
    AND DATE_ < '2017-01-01'
)
group by VATNUMBER
) d
group by MONTH(DATE_), DATENAME(MONTH, DATE_)
Order by MONTH(DATE_)



2017年结果:




Result for year 2017:

Date     |   Count
January  |   61
February |   43
March    |   23
April    |   48
etc....



现在我有2018年的相同程序:




And now I have same Procedure for 2018:

Select 
    DATENAME(MONTH, DATE_) AS Date,
     count(distinct VATNUMBER) As Count
    from 
       (
        select VATNUMBER, DATE_ = min(DATE_)
        from
        ACCOUNTS a inner join CUSTTABLE b
        on a.ID= b.ID
        where ITEMNUMBER in(7055,7056,7059) AND YEAR(a.DATE_) = '2018'
        AND VATNUMBER NOT IN (
        select VATNUMBER
        from
        ACCOUNTS a inner join CUSTTABLE b
        on a.ID= b.ID
        where ITEMNUMBER in(7055,7056,7059)
        AND DATE_ < '2018-01-01'
    )
    group by VATNUMBER
    ) d
    group by MONTH(DATE_), DATENAME(MONTH, DATE_)
    Order by MONTH(DATE_)





结果2018年:





Result for year 2018:

Date     |   Count
January  |   119
February |   200
March    |   112
April    |   87
etc....



我想做的是将两个select语句放在同一个存储过程下。我希望看到的结果是:




What I'd like to do is to put both select statements under the same Stored procedure. A result I'd like to see is:

Date 2017|   Count  | Date 2018|   Count
January  |   61     | January  |   119
February |   43     | February |   200
March    |   23     | March    |   112
April    |   48     | April    |   87
etc....





我尝试了什么:



我试过UNION,UNION ALL没有成功或没有预期的结果



What I have tried:

I have tried UNION, UNION ALL with no success or not the anticipated result

推荐答案

参考下面的帖子如果它可以帮到你。



sql server - 组合两个没有公共字段的表 - Stack Overflow [ ^ ]
Refer below post if it helps you.

sql server - Combine two tables that have no common fields - Stack Overflow[^]


这篇关于加入两个没有共同点的select语句的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆