【发布时间】:2023-04-01 22:24:01
【问题描述】:
当未填充 Where 时,我的以下查询运行良好,但我很难为 where 中的数据获取正确的引用。
代码如下:
SELECT g.Id as Id,
g.Printed as Printed,
g.CreatedDate as CreatedDate ,
case when (
Select Count(Distinct custSubGA.CustomerId) from PickingAssignment_PickingAssignmentUserGroup custSubG
join PickingAssignment custSubGA on custSubGA.Id = custSubG.PickingAssignmentId
join Customer custSub2C on custSubGA.CustomerId = custSub2C.Id
where custSubG.PickingAssignmentUserGroupId = Max(g.Id)
) > 1
then 'Multiple'
else (
Select Max(custSub2C.Name) from PickingAssignment_PickingAssignmentUserGroup custSub2G
join PickingAssignment custSub2GA on custSub2G.PickingAssignmentId = custSub2GA.Id
join Customer custSub2C on custSub2GA.CustomerId = custSub2C.Id
where custSub2G.PickingAssignmentUserGroupId = Max(g.Id)
) end as CustomerName
from PickingAssignmentUserGroup g
where CustomerName like 'exet%'
我也尝试使用 " where custSub2C.Name like 'exet%' ,但这也不起作用。多部分标识符 custSub2C.Name 无法绑定是我从中得到的。
这是我第一次尝试在 SQL 中使用 case 语句,所以我有可能做错了。
任何帮助都会很棒。如果您需要更多信息,请告诉我。
【问题讨论】:
标签: sql sql-server case where alias