回答

收藏

安排日期的行

技术问答 技术问答 244 人阅读 | 0 人回复 | 2023-09-12

我有以下数据:
" t# N& W% }1 x3 p3 J1 K, EStartDate     EndDate    Duration ----------41890                       41900            341906                                       41910     41910       11910                StartDate和EndDate它是日历中的任何日期ID值。我想连续几天计算工期总和。我想包括周末。例如,在上述数据中,假设41908和41909是周末,我需要的结果集应如下所示。7 V) |5 l/ }4 d- q: w& _
我有另一个可以在下一个工作日回到我身边的人proc,也就是说,如果我在这里proc41907或41908或41909作为中转DateID,它将在下一个工作日返回41910。基本上,我想检查并传递上述信息EndDateID时proc返回的DateID是否与上述数据中的下一个数据相匹配StartDateID同样,这两行应该结合在一起。以下是我想要获得的数据。5 N& @! M2 @. |! L  x' _5 w! L' W
ID          StartDate     EndDate    Duration ----------278457      41890  41892       3278457        4188888                                                                                                                           3191910                                                                                                                                                                                                                                                                                                                                                                                                                                 如果要求不明确,请告诉我,我可以进一步解释。- S) e9 W+ c3 b6 i
我的日期表如下:* o) g! P) r4 P' w# `8 H
DateId        Date      Day----------41906      09-04-2014    Thursday41907   -05-2014    Friday41908    -06-2014    Saturdat41909   -07-2014    Sunday41910    -08-2014    Monday这是用来设置的SQL代码:! z  G  a% i# V) T
CREATE TABLE Table1(StartDate INT,EndDate INT,LeaveDuration INT)INSERT INTO Table1VALUES(41890,41892,3),(41898,41900,3),(41906,41907,3)CREATE TABLE DateTable(DateID INT,Date DATETIME,Day VARCHAR(20))INSERT INTO DateTableVALUES(41907,'09-05-2014','Friday(41908,09-06-2014','Saturday(41909,09,-07-2014','Sunday(41910,09-08-2014','Monday(41911,09-09-2014','Tuesday             ; N$ U# U% m3 V+ L7 L( t
    解决方案:
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则