这是我的查询,我想通过添加total_qty
+ s.item_qty
+ grn_qty
来计算总数issues_qty
。是否可以使用别名添加列值?
SELECT s.items_no,
s.item_desc,
s.item_qty,
(SELECT Isnull(Sum(g.qty), 0)
FROM grn_details g
WHERE g.items_no = s.items_no) grn_qty,
(SELECT Isnull(Sum(i.qty), 0)
FROM stk_issue_details i
WHERE i.items_no = s.items_no) issues_qty,
( s.item_qty + grn_qty + issues_qty ) total_qty
FROM stocks s
答案 0 :(得分:5)
您可以在outer query
中执行此操作,而不是在生成alias
的同一查询中。
SELECT items_no,
item_desc,
item_qty,
grn_qty,
issues_qty,
total_qty = grn_qty + issues_qty
FROM (SELECT s.items_no,
s.item_desc,
s.item_qty,
(SELECT Isnull(Sum(g.qty), 0)
FROM grn_details g
WHERE g.items_no = s.items_no) grn_qty,
(SELECT Isnull(Sum(i.qty), 0)
FROM stk_issue_details i
WHERE i.items_no = s.items_no) issues_qty
FROM stocks s) a
或者您可以使用OUTER APPLY
,只需要一个select
SELECT s.items_no,
s.item_desc,
s.item_qty,
grn_qty,
issues_qty,
total_qty = grn_qty + issues_qty
FROM stocks s
OUTER apply (SELECT Isnull(Sum(g.qty), 0)
FROM grn_details g
WHERE g.items_no = s.items_no) g(grn_qty)
OUTER apply (SELECT Isnull(Sum(i.qty), 0)
FROM stk_issue_details i
WHERE i.items_no = s.items_no) i (issues_qty)