简体   繁体   English

将SQL Server Query 2012转换为2008

[英]Convert SQL Server Query 2012 to 2008

在此处输入图片说明

The Third Output is All I want I query that using sql server 2012 using this query 第三输出是我要查询的所有内容,使用此查询使用sql server 2012

Select LACCT,LREFNO,CONVERT(char(10), LDATE, 101) AS DATE,Description,Debit,Credit,Balance
From 
    (
        SELECT 
        LACCT, 
        LREFNO, 
        LDATE, 
        Description,
        Debit,
        Credit, 
        SUM(Debit - Credit) OVER (ORDER BY LDATE  ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS Balance
    FROM
        (
            Select  
                a.LACCT,
                a.LREFNO,
                a.LDATE,
                b.Description ,
                case when a.LDBCR = 'D' then cast(a.LAMOUNT AS decimal(20,2)) else '0.0' end Debit,
                case when a.LDBCR = 'C' then cast(a.LAMOUNT AS decimal(20,2)) else '0.0' end Credit

            FROM [dbo].[BCS02001] AS a
                 JOIN [dbo].[ref_LedgerParticulars] as b ON a.LCODE = b.Code  
                 where a.LACCT= @AcntNo 
          ) LedgerTable ) tblAll where year(LDATE) = @YEAR

But this Query is not Running on SQL SERVER 2008 r2 但是此查询未在SQL SERVER 2008 r2上运行

OVER (ORDER BY LDATE  ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW)

How can I convert this to sql; 如何将其转换为sql; server 2008 r2 服务器2008 R2

thank you 谢谢

Remove this from the code: 从代码中删除它:

 ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW

It is something v2008 doesn't support. v2008不支持该功能。 However, removing it will not change anything, as this line is the default window. 但是,删除它不会更改任何内容,因为此行是默认窗口。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM