将主查询分组为多个条件,其中一个是case表达式的结果,我想编写一个子查询来向我的结果集添加一列。此子查询必须按相同条件分组。如何根据案例表达式的结果连接子查询和主查询?
我的设置太奇怪了,因为我尝试在sql server 2008中实现中值计算。如果它不适用于主查询中的case表达式的分组,它将正常工作。
有关评论的更新:
问题是我必须使子查询与主查询在同一组数据上工作。我通过执行相同的分组并在WHERE子句中连接它来尝试这个。
但是如何做一个像
这样的WHERE子句WHERE
subquery.property1 = mainquery.property1 // works
AND
CASE WHEN (subquery.A>subquery.B) THEN 'C' ELSE 'D' = CASE WHEN (mainquery.A>mainqueryB) THEN
'C' ELSE 'D' // i dont know how to do this properly
这样很好还是你真的想要完整的查询?我是因为它非常庞大而且令人困惑。
UPDATE2: 使用CTE工作得很好。使用包含CASE结果的新列将数据写入CTE,然后在CTE上进行所有进一步选择,使该列成为where条件之一。