SQL交叉表On条件是否可以用like连接?

uCharts 2016-08-18 10:22:29
各位高手,请帮忙解决下问题,现有两个表,求各位大神帮忙解决,小弟新手
表一单位组织表DEP:
ID,DEP,UP_ID
1,分校一,0
2,分校一/一年级,1
3,分校一/一年级/一班,2
4,分校一/一年级/二班,2
5,分校一/一年级/三班,2
6,分校一/一年级/四班,2
7,分校一/二年级,1
8,分校一/二年级/一班,7
9,分校二,0
10,分校二/一年级,9
11,分校二/一年级/一班,10
...............................

表二发布的文件表WENJIAN
ID,DEP_ID,DEP_NAME,WENJIAN_LEIXING,WENJIAN_NAME
1,3,分校一/一年级/一班,通知,关于XX通知
2,3,分校一/一年级/一班,文件,关于XX文件
3,5,分校一/一年级/三班,文件,关于XX文件
4,11,分校二/一年级/一班,文件,关于XX文件


需要生成的表

ID,DEP,文件,通知
1,分校一,2,1
2,分校一/一年级,2,1
3,分校一/一年级/一班,1,1
4,分校一/一年级/二班,0,0
5,分校一/一年级/三班,1,0
6,分校一/一年级/四班,0,0
7,分校一/二年级,1,0
8,分校一/二年级/一班,1,0
9,分校二,1,0
10,分校二/一年级,1,0
11,分校二/一年级/一班,1,0


SELECT DEP.ID,DEP.DEP,
count(case
when WENJIAN.WENJIAN_LEIXING='文件'
then WENJIAN.ID
else null
end)as 文件
FROM DEP full outer join WENJIAN ON WENJIAN.DEP like DEP.DEP (这里应该用%%来匹配,但用%后没有记录)
group by DEP.ID,DEP.DEP
order by DEP.ID
GO


在join 后,可以生成的结果不是想象中的结果,

ID,DEP,文件,通知
1,分校一,0,0
2,分校一/一年级,0,0
3,分校一/一年级/一班,1,1
4,分校一/一年级/二班,0,0
5,分校一/一年级/三班,1,0
6,分校一/一年级/四班,0,0
7,分校一/二年级,1,0
8,分校一/二年级/一班,1,0
9,分校二,0,0
10,分校二/一年级,0,0
11,分校二/一年级/一班,1,0

请各位指点一下,如何生成分校和年级的汇总
我觉得问题出在这里:
FROM DEP full outer join WENJIAN ON WENJIAN.DEP like DEP.DEP
但好几天都不知道怎么解决,多谢各位兄弟姐妹帮忙指点!!!!!


...全文
1943 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
uCharts 2016-08-18
  • 打赏
  • 举报
回复
自己解决了 FROM DEP full outer join WENJIAN ON WENJIAN.DEP like '%'+DEP.DEP+'%'
中国风 2016-08-18
  • 打赏
  • 举报
回复
SELECT  a.ID ,
        a.DEP ,
        SUM(CASE WHEN b.WENJIAN_LEIXING = '文件' THEN 1
                 ELSE 0
            END) AS 文件 ,
        SUM(CASE WHEN b.WENJIAN_LEIXING = '通知' THEN 1
                 ELSE 0
            END) AS 通知
FROM    DEP AS a
        LEFT JOIN WENJIAN AS b ON b.DEP_NAME LIKE a.DEP + '%'
GROUP BY a.ID ,
        a.DEP;
GO
中国风 2016-08-18
  • 打赏
  • 举报
回复
引用 2 楼 qq_35901599 的回复:
自己解决了 FROM DEP full outer join WENJIAN ON WENJIAN.DEP like '%'+DEP.DEP+'%'
这样情况用left join (左联)不需要full join (全联) 条件,如果是路径时记录 用 LIKE a.DEP + '%'--以DEP开头的路径去匹配另一个表,能有效利用索引 你把两个语句结果一样时用#1提供方法,效率高

22,206

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧