如何优化以下查询以更好地工作:
SELECT c.a1,c.a2,
(SELECT SUM(t2.TempOB) FROM tbl1 t2 WHERE t2.AccNo LIKE CONCAT( C.AccNo,'%') )OB,
(SELECT SUM(t3.TempDebit) FROM tbl1 t3 WHERE t3.AccNo LIKE CONCAT( C.AccNo,'%') ) Debit,
(SELECT SUM(t4.TempCredit) FROM tbl1 t4 WHERE t4.AccNo LIKE CONCAT( C.AccNo,'%') ) Credit
FROM tbl1 C WHERE AccLevel= @Level
答案 0 :(得分:1)
您可以使用如下:
SELECT
A.a1,
A.a2,
SUM(B.OB) AS OB,
SUM(B.Debit) AS Debit,
SUM(B.Credit) AS Credit
FROM
tbl1 A LEFT JOIN
tbl1 B ON B.AccNo LIKE A.AccNo + '%'
WHERE
A.AccLevel = @Level
GROUP BY
A.a1,
A.a2