有一个表PDM,其中有几个日期字段:BSCValidateDate,SDValidateDate,WindowValidateDate,BookDate我们需要进行统计,需要先计算出几个日期之间的间隔工作日的天数,例如:8月8日到8月11日,之间是2个工作日(8.8和8.9)。
工作日的计算,为了保证准确,我们维护一个表ACCDATE。内容:因此,计算两个日期之间的工作日,就是从ACCDATE表中查询得到这两个日期之间有几个DateType=工作日的行,即可得到工作日天数。
现在的问题是,我如何直接在一个SQL查询中得到PDM所有行的几个日期之间的工作日?
我希望得到的是如下格式:
SeriesNo  其他字段……  WD1, WD2, WD3, WD4……
谢谢!

解决方案 »

  1.   

    参考一下:http://blog.csdn.net/maco_wang/article/details/6262156
      

  2.   

    不清楚樓主要算那些日期之間的工作日
    如果是字段之間的應該很好算吧,直接用相關子查詢從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