无法在十进制SQL Server错误中调用方法

无法在十进制SQL Server错误中调用方法,sql,sql-server-2012,Sql,Sql Server 2012,这是我用左连接的查询,我正在自动开发借贷和余额 也许我缺少专栏。我使用gl_drcr作为主列,通过查询将其拆分为贷方和借方,但我无法获得余额的值。我还有amount列,可以在其中存储amount值 你能帮我找出我在这个问题上的错误吗 我的存储过程如下所示: ALTER procedure [dbo].[sp_getDataML] (@gl_acid int, @userid int) AS BEGIN SELECT ROW_NUMBER() OVER (ORDE

这是我用左连接的查询,我正在自动开发借贷和余额

也许我缺少专栏。我使用gl_drcr作为主列,通过查询将其拆分为贷方和借方,但我无法获得余额的值。我还有amount列,可以在其中存储amount值

你能帮我找出我在这个问题上的错误吗

我的存储过程如下所示:

ALTER procedure [dbo].[sp_getDataML]
    (@gl_acid int, @userid int)
AS
BEGIN
    SELECT 
        ROW_NUMBER() OVER (ORDER BY gLedeger.PK_id) AS sno,
        CASE 
           WHEN master.ma_accname IS NULL THEN '' 
           ELSE ma_accname 
        END AS AccName, 
        gLedeger.gl_date AS date, gLedeger.gl_narration AS Narration, 
        gLedeger.gl_drcr as DRCR,
        CASE
           WHEN gLedeger.gl_drcr > 0 THEN ABS(gLedeger.gl_drcr) 
           ELSE 0.00 
        END AS debit,
        CASE 
           WHEN gLedeger.gl_drcr < 0 THEN ABS(gLedeger.gl_drcr) 
           ELSE 0.00 
        END AS credit,
        SUM(COALESCE(gLedeger.gl_drcr.credit, 0) - COALESCE(gLedeger.gl_drcr.debit, 0)) AS Balance  
    FROM 
        gLedeger   
    LEFT JOIN 
        master ON gLedeger.GL_ACID = master.PK_ID 
    LEFT JOIN
        registration r ON master.userId = @userid
    WHERE 
        gLedeger.GL_ACID = @gl_acid
        /*and LEFT(gLedeger.gl_voucher,2)=@voucher*/
    ORDER BY 
        gLedeger.gl_date
END

我得到的解决方案如下:-

更改程序[dbo].[fulltest] @gl_acid int, @用户ID int 像 开始

按gLedeger.PK_id选择订单上的行号作为sno,如果master.ma_accname为空,则选择其他ma_accname结束作为accname,gLedeger.gl_日期作为日期,gLedeger.gl_旁白作为旁白,gLedeger.gl_drcr作为drcr, 当gLedeger.gl_drcr>0时,则absgLedeger.gl_drcr否则0.00作为借方结束, 当gLedeger.GL_DRCR<0时,则absgLedeger.GL_DRCR其他0.00结束为贷方, SUMgLedeger.gl_drcr按gledeger.pk_ID行超额订购作为余额 从gLedeger左连接主控灯打开 gLedeger.GL_ACID=master.PK_ID在master.userId=@userId上左加入注册r 其中gLedeger.GL_ACID=@GL_ACID /和LEFTgLedeger.gl_凭证,2=@凭证/


我得到的解决方案如下:-

更改程序[dbo].[fulltest] @gl_acid int, @用户ID int 像 开始

按gLedeger.PK_id选择订单上的行号作为sno,如果master.ma_accname为空,则选择其他ma_accname结束作为accname,gLedeger.gl_日期作为日期,gLedeger.gl_旁白作为旁白,gLedeger.gl_drcr作为drcr, 当gLedeger.gl_drcr>0时,则absgLedeger.gl_drcr否则0.00作为借方结束, 当gLedeger.GL_DRCR<0时,则absgLedeger.GL_DRCR其他0.00结束为贷方, SUMgLedeger.gl_drcr按gledeger.pk_ID行超额订购作为余额 从gLedeger左连接主控灯打开 gLedeger.GL_ACID=master.PK_ID在master.userId=@userId上左加入注册r 其中gLedeger.GL_ACID=@GL_ACID /和LEFTgLedeger.gl_凭证,2=@凭证/


确保您的代码被格式化为提高易读性的代码您在查询中有聚合函数,但未按条款分组使用我只是一名编码初学者,您能告诉我如何在上述查询中使用分组吗???确保您的代码被格式化为提高易读性的代码您在查询中有聚合函数,但未按条款分组使用我只是一个刚刚开始编码的人,你们能告诉我如何在上面的查询中使用group吗????
ORDER BY gLedeger.gl_date

end