【发布时间】:2019-02-27 12:23:41
【问题描述】:
我的查询应该返回几个列结果。还有一个要求,我必须为其中一列应用额外的过滤器。我找到了使用子查询(在主选择中选择)的解决方案,这里是示例:
SELECT
recid,
price,
receive_date,
(SELECT deduction FROM Cost WHERE recid = c.recid AND status = 'Y') AS deduction
FROM Cost c
INNER JOIN cost_types ct
c.recid = ct.recid
WHERE cost_year = '2018'
上面的查询必须从Cost 表中提取与cost_type 表记录匹配的所有记录,其中cost_year 是2018。最重要的是,我必须提交deduction,其中status 是Y。我想知道我可以为这个查询使用什么其他技术?我知道UNION / UNION ALL,但那是更多的代码,似乎是多余的。如果有人有建议或更好的方法来处理这种情况,请告诉我。另外,我想知道这是否更适合存储过程?会推荐吗?
【问题讨论】:
标签: sql sql-server-2008 subquery