小编man*_*yee的帖子

T-SQL中的条件联盟

目前我的查询如下:

-- Query 1
SELECT
    acc_code, acc_name, alias, LAmt, coalesce(LAmt,0) AS amt 
FROM 
    (SELECT 
        acc_code, acc_name, alias, 
        (SELECT 
            (SUM(cr_amt)-SUM(dr_amt)) 
        FROM 
            ledger_mcg l
        WHERE 
            (l.acc_code LIKE a.acc_code + '.%' OR l.acc_code=a.acc_code) 
        AND 
            fy_id=1 
        AND
            posted_date BETWEEN '2010-01-01' AND '2011-06-02') AS LAmt 
    FROM
        acc_head_mcg AS a 
    WHERE 
    (acc_type='4')) AS T1
WHERE 
    coalesce(LAmt,0)<>0
Run Code Online (Sandbox Code Playgroud)

除了acc_type = '5' 在查询2中,查询2 与查询1相同.查询2始终返回具有单行的结果集.现在,我需要两个查询的联合,即

Query 1 
UNION
Query 2
Run Code Online (Sandbox Code Playgroud)

只有当查询2返回的amt小于0时.否则,我不需要联合,只需要查询1中的结果集.

我能想到的最好方法是创建一个参数化标量函数.我怎么能这样做?

t-sql sql-server-2008

0
推荐指数
1
解决办法
999
查看次数

标签 统计

sql-server-2008 ×1

t-sql ×1