大家请看看下面的SQL语句,其目的是先将一个表b进行条件查询,然后另外一个表a左连接b表,对b.zslbdm进行分组统计,结果报了如下错误:服务器: 消息 170,级别 15,状态 1,行 1
第 1 行: ',' 附近有语法错误。
服务器: 消息 156,级别 15,状态 1,行 7
在关键字 'on' 附近有语法错误。SQL 语句如下:
SELECT a.zslb,count(b.zslbdm) as Bmrs
FROM Td_zslbdm a LEFT OUTER JOIN
(SELECT b.*
FROM T_bmk b
WHERE (DATEDIFF(day, '2004-1-1', b.xg_date) > 0)
AND (DATEDIFF(day, '2004-7-6', b.xg_date) < 0))
on a.Zslbdm = b.zslbdm
group by a.zslb
第 1 行: ',' 附近有语法错误。
服务器: 消息 156,级别 15,状态 1,行 7
在关键字 'on' 附近有语法错误。SQL 语句如下:
SELECT a.zslb,count(b.zslbdm) as Bmrs
FROM Td_zslbdm a LEFT OUTER JOIN
(SELECT b.*
FROM T_bmk b
WHERE (DATEDIFF(day, '2004-1-1', b.xg_date) > 0)
AND (DATEDIFF(day, '2004-7-6', b.xg_date) < 0))
on a.Zslbdm = b.zslbdm
group by a.zslb
(SELECT b.*
FROM T_bmk b
WHERE (DATEDIFF(day, '2004-1-1', b.xg_date) > 0)
AND (DATEDIFF(day, '2004-7-6', b.xg_date) < 0))
on a.Zslbdm = b.zslbdm//
好像是这样吧:join 表名 on a.Zslbdm = b.zslbdm
FROM T_bmk b
WHERE (DATEDIFF(day, '2004-1-1', b.xg_date) > 0)
AND (DATEDIFF(day, '2004-7-6', b.xg_date) < 0)) 这个子查询需要一个别名
SELECT a.zslb,count(b.zslbdm) as Bmrs
FROM Td_zslbdm a LEFT OUTER JOIN
(SELECT *
FROM T_bmk
WHERE (DATEDIFF(day, '2004-1-1', xg_date) > 0)
AND (DATEDIFF(day, '2004-7-6', xg_date) < 0)) b
on a.Zslbdm = b.zslbdm
group by a.zslb