有一个表PDM,其中有几个日期字段:BSCValidateDate,SDValidateDate,WindowValidateDate,BookDate我们需要进行统计,需要先计算出几个日期之间的间隔工作日的天数,例如:8月8日到8月11日,之间是2个工作日(8.8和8.9)。
工作日的计算,为了保证准确,我们维护一个表ACCDATE。内容:因此,计算两个日期之间的工作日,就是从ACCDATE表中查询得到这两个日期之间有几个DateType=工作日的行,即可得到工作日天数。
现在的问题是,我如何直接在一个SQL查询中得到PDM所有行的几个日期之间的工作日?
我希望得到的是如下格式:
SeriesNo 其他字段…… WD1, WD2, WD3, WD4……
谢谢!
工作日的计算,为了保证准确,我们维护一个表ACCDATE。内容:因此,计算两个日期之间的工作日,就是从ACCDATE表中查询得到这两个日期之间有几个DateType=工作日的行,即可得到工作日天数。
现在的问题是,我如何直接在一个SQL查询中得到PDM所有行的几个日期之间的工作日?
我希望得到的是如下格式:
SeriesNo 其他字段…… WD1, WD2, WD3, WD4……
谢谢!
如果是字段之間的應該很好算吧,直接用相關子查詢從ACCDATE中查詢就可以了
如Deliverdate與receivedate之間的可以這樣寫
select SeriesNo,(select count(datetype) from accdate where CalendarDate
between p.DeliverDate and p.ReceiveDate and datetype='工作日') as WD1 from pdm p