sql语句出现错误

littlebirds 2014-02-25 01:52:22
select a.id,c.po_num,a.stock_no,c.plant,c.get_date,b.cust_no,b.type,d.mount,
d.total,a.packageno,c.snp,b.lotno,count(b.lotno) from sgm_ch_check as a
left join
(sys_barcode_1d_y as b,sgm_stock_detail as c,sgm_stock_depart as d)
on (b.packageno = a.packageno and c.po_num =
left(a.stock_no,charindex(' ',a.stock_no)-1) and d.po_no = a.stock_no)
where convert(varchar(10),c.get_date,120) = '2014-02-25' and a.stock_no
like '201%' group by a.packageno,b.lotno order by a.stock_no,a.packageno,
b.lotno asc

提示此行出错,Incorrect syntax near ','.

在mysql下可执行,但是换至mssql就不行了。请问是哪里出了问题?
...全文
78 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
littlebirds 2014-02-25
  • 打赏
  • 举报
回复
感谢各位大牛。
發糞塗牆 2014-02-25
  • 打赏
  • 举报
回复
(sys_barcode_1d_y as b,sgm_stock_detail as c,sgm_stock_depart as d) 逗号关联,应该是inner join
LongRui888 2014-02-25
  • 打赏
  • 举报
回复
把:left join (sys_barcode_1d_y as b,sgm_stock_detail as c,sgm_stock_depart as d) on (b.packageno = a.packageno and c.po_num = left(a.stock_no,charindex(' ',a.stock_no)-1) and d.po_no = a.stock_no) 改成3个left join: left join sys_barcode_1d_y as b on b.packageno = a.packageno left join sgm_stock_detail as c on c.po_num = left(a.stock_no,charindex(' ',a.stock_no)-1) left join sgm_stock_depart as d on d.po_no = a.stock_no
發糞塗牆 2014-02-25
  • 打赏
  • 举报
回复
T-SQL每次join 只允许两个表,而你那个是一个表(a)join 3个表(b,c,d),所以报错
LongRui888 2014-02-25
  • 打赏
  • 举报
回复
改成这样试试:
select a.id,c.po_num,a.stock_no,c.plant,c.get_date,b.cust_no,b.type,d.mount,
d.total,a.packageno,c.snp,b.lotno,count(b.lotno) 
from sgm_ch_check as a 
left join sys_barcode_1d_y as b
       on b.packageno = a.packageno
left join sgm_stock_detail as c
       on c.po_num = left(a.stock_no,charindex(' ',a.stock_no)-1)
left join sgm_stock_depart as d
       on d.po_no = a.stock_no

where convert(varchar(10),c.get_date,120) = '2014-02-25' and 
a.stock_no like '201%' 
group by a.packageno,b.lotno order by a.stock_no,a.packageno,b.lotno asc

發糞塗牆 2014-02-25
  • 打赏
  • 举报
回复
SELECT  a.id ,
        c.po_num ,
        a.stock_no ,
        c.plant ,
        c.get_date ,
        b.cust_no ,
        b.type ,
        d.mount ,
        d.total ,
        a.packageno ,
        c.snp ,
        b.lotno ,
        COUNT(b.lotno)
FROM    sgm_ch_check AS a
        LEFT JOIN sys_barcode_1d_y AS b ON b.packageno = a.packageno
        INNER JOIN sgm_stock_detail AS c ON c.po_num = LEFT(a.stock_no,
                                                            CHARINDEX(' ',
                                                              a.stock_no) - 1)
        INNER JOIN sgm_stock_depart AS d ON d.po_no = a.stock_no
WHERE   CONVERT(VARCHAR(10), c.get_date, 120) = '2014-02-25'
        AND a.stock_no LIKE '201%'
GROUP BY a.packageno ,
        b.lotno
ORDER BY a.stock_no ,
        a.packageno ,
        b.lotno ASC

34,593

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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