我有这个类别组,它有5个类别和描述(显示文本)的类别。字段(类别ID,显示文本)
我还有另一个视图,其中包含有关月,性别,新(部门员工),转移(来自其他部门的员工)和继续(相同部门)和类别ID的信息。
现在我想根据性别和月份检查类别表中的每个categoryID,是否有新的,转移或继续。
例如,CategoryID = 1,检查视图中是否存在任何CategoryID = 1然后返回VIEW中ID的所有详细信息,如果不是每个性别和月份返回0。
select c.UniqueID,
c.DisplayText ,
s.Gender,
s.Term,
s.Status ,
s.NoofStatus
from Category c
left outer Join
Status_Count_View s on c.UniqueID=s.UniqueID
我希望表A中的所有记录都映射到表B中的每个术语。如果表A中没有找到表B中特定类别的记录,那么仍然必须使用值0 < / p>
答案 0 :(得分:0)
select * from category c, cat_view cv where c.Cat_ID = cv.categoryID
union
select c.cat_id, c.DisplayText, 0 , 0 ,'',0,0,0
from category c
where c.Cat_ID not in (select distinct(categoryID) from cat_view)
请根据需要编辑列名。关键在于'联盟'。首先,我们得到匹配的一切。然后我们得到所有不匹配的类别并将其添加到结果中(通过'union'关键字实现)。