表cl 为特种车辆信息数据表
表violate 为车辆违法数据表
表cl的结构如下:
车牌号码(cphm) 车辆类型(cllx) 车主姓名(czxm)
……表violate的结构如下:(违法一次一条记录)
车牌号码(cphm) 车辆类型(pzlx_code)驾驶员姓名(jsyxm)违法时间(wzsj)违法行为(wzdm)
……如何将表cl中“违法三次以上”或 “超速行驶”两次以上 或 违法行为为“酒后驾车”的特种车辆筛选出来。
注:超速行驶的违章代码为1403,酒后驾驶的违章代码为7103,车牌号码相同,但车辆类型有可能不同
你昨天给的代码我执行了,查不到数据,但sql也未提示错误//怎么办呢?附代码:
SELECT cl.* FROM cl
INNER JOIN
(SELECT cphm FROM violate WHeRE wzdm=1403 GROUP BY cphm HAVING COUNT(2)>=2 /*超速二以上*/
UNION
SELECT cphm FROM violate WHERE wzdm=7103 GROUP BY cphm /*洒后架过车的*/
UNION
SELECT cphm FROM violate GROUP BY cphm HAVING COUNT(2)>=3 /*围规三次以上的*/
) x
ON x.cphm=cl.cphm
表violate 为车辆违法数据表
表cl的结构如下:
车牌号码(cphm) 车辆类型(cllx) 车主姓名(czxm)
……表violate的结构如下:(违法一次一条记录)
车牌号码(cphm) 车辆类型(pzlx_code)驾驶员姓名(jsyxm)违法时间(wzsj)违法行为(wzdm)
……如何将表cl中“违法三次以上”或 “超速行驶”两次以上 或 违法行为为“酒后驾车”的特种车辆筛选出来。
注:超速行驶的违章代码为1403,酒后驾驶的违章代码为7103,车牌号码相同,但车辆类型有可能不同
你昨天给的代码我执行了,查不到数据,但sql也未提示错误//怎么办呢?附代码:
SELECT cl.* FROM cl
INNER JOIN
(SELECT cphm FROM violate WHeRE wzdm=1403 GROUP BY cphm HAVING COUNT(2)>=2 /*超速二以上*/
UNION
SELECT cphm FROM violate WHERE wzdm=7103 GROUP BY cphm /*洒后架过车的*/
UNION
SELECT cphm FROM violate GROUP BY cphm HAVING COUNT(2)>=3 /*围规三次以上的*/
) x
ON x.cphm=cl.cphm
结构如下:
id(主键 int) cphm(vchar) pzlx_code(int) czxm(vchar) cldw(vchar)
1001 川A1111 01 小王 公司1
2351 川A2222 02 小王 公司2
3333 川A1111 02 小李 公司3
……表violate
结构如下:
xuhao( int) cphm(vchar) cllx(vchar) wzdm(vchar) wzsj(date)
123 川A1234 01 1403 2005-01-22
232 川A1235 02 1403 2006-11-11
321 川A1111 01 7103 2006-11-19
353 川A1111 01 7103 2006-11-19
353 川A1111 01 2207 2006-11-19
……
where ( exists( SELECT cphm FROM violate where wzdm=1403 and cphm=c1.cphm GROUP BY cphm HAVING COUNT(1)>=2) )
or ( exists( SELECT cphm FROM violate where wzdm=7103 and cphm=c1.cphm ) )
or ( exists( SELECT cphm FROM violate where cphm=c1.cphm GROUP BY cphm HAVING COUNT(1)>=3 ) )