我在当前页面中有两个查询。它们非常相似,但仍然返回不同数量的记录。这是一个例子:
查询1
选择 recid, 成本, CUR_YEAR来自Info i 内…
为什么不包括另一列?存储过程中的两个查询仍在两次访问数据库。
并且,您可以将其表达为:
SELECT recid, cost, cur_date, SUM(CASE WHEN cost > 0 THEN cost ELSE 0 END) OVER () as total_cost FROM Info i INNER JOIN Extension ex ON ex.recid = i.recid AND ex.categoryid = i.categoryid WHERE cur_date = '2018' AND -- this is suspicious. Dates are not years info_id = '4531';
由于一些呼叫者在第一次交付结果集时启动返回,因此在您的proc主体的开头设置nocount。我知道没有办法让一个查询返回2套。
set nocount on;