日期:2014-05-17  浏览次数:20389 次

求动态SQL的写法
现有语句如下,这个语句执行了后是可以查出截止9月30日为止科目100101的余额,
但是我现在的需求是查询出来9月1日到9月30日期间每天的余额。
SELECT SUM(T1.DEBIT-T1.CREDIT) AS 现金存款
FROM JDT1 T1
WHERE T1.REFDATE <= '2013-09-30'
  AND T1.Account = '100101'

有人说可以用动态SQL实现,但我不知道怎么来写。谢谢啦,只能用22分,全都献上了

------解决方案--------------------
把你的表结构贴出来,贴重点即可,文本方式,另外给点测试数据和期待结果
------解决方案--------------------
先把表数据用文本形式贴出来看看
------解决方案--------------------
try this,

select a.REFDATE,b.现金存款 from
(select dateadd(d,number,'2013-09-01') 'REFDATE'
 from master.dbo.spt_values
 where type='P' and number between 0 and 29) a
cross apply
(SELECT SUM(T1.DEBIT-T1.CREDIT) AS 现金存款
 FROM JDT1 T1
 WHERE T1.Account='100101' and T1.REFDATE<=a.REFDATE) b