【发布时间】:2016-01-18 08:32:55
【问题描述】:
我有一张这样的表 - 更改表:
Table 1:
id start_date end_date s_g r_c s_c
111 1/1/15 25/5/2015 A1 1 0
111 26/05/2015 31/12/9999 Z1 1 2
222 1/1/14 10/2/2015 Q1 1 0
222 11/2/2015 31/12/9999 R1 1 0
我需要像这样为 2015 年建立一个每月输出:
id month s_g r_c _s_c percent
111 1 A1 1 0 100%
111 2 A1 1 0 100%
111 3 A1 1 0 100%
111 4 A1 1 0 100%
111 5 A1 1 0 83.33%
111 5 Z1 1 2 16.67%
111 6 Z1 1 2 100%
111 7 Z1 1 2 100%
111 8 Z1 1 2 100%
222 1 Q1 1 0 100%
222 2 Q1 1 0 35.71%
222 2 R1 1 0 64.29%
222 3 R1 1 0 100%
222 4 R1 1 0 100%
222 5 R1 1 0 100%
222 6 R1 1 0 100%
222 7 R1 1 0 100%
222 8 R1 1 0 100%
我只需要 2015 年的这个月。 知道如何构建这个东西吗?只是假设这些是唯一的情况。
【问题讨论】:
-
您能解释一下应该如何从源记录生成输出吗?您能否也向我们展示您迄今为止所做的尝试?
-
我有一个开始日期和结束日期,我需要从表 1 中获取 4 行,并像我提到的那样进行输出。我只需要一个想法如何从这个开始。
-
样本数据中的第一行在预期输出中似乎变成了 5 行。这是怎么发生的?什么规则支配这种转变?为什么第一行是 100% 而第五行是 83.33%?您在问题中添加的细节越多,您获得满意答案的可能性就越大。包括尝试回答的问题也更有可能得到回答。因此,如果您可以包含您迄今为止尝试过的 SQL,那将会有所帮助。
-
请用单词解释你想要什么,而不是在这里发布我拥有的数据和我想要的数据。
-
不完全解释。为什么 Z1 只会到 8,为什么不到 12。在输出中包含开始日期和结束日期。解释 16.67% 和 83.3% 的计算
标签: sql-server date days