1

当我执行我认为创建良好的查询时出现异常,错误是:Msg 102, Niveau 15, État 1, Ligne 6 Syntaxe wronge vers ')'。这里的请求:

 SELECT DISTINCT designation FROM 
  (select top 100 percent designation , code_piececomptable
  from cpt_lignepiececomptable  WHERE   code_piececomptable IN 
  (SELECT code_piececomptable 
  FROM cpt_piececomptable  WHERE   terminer  is null or terminer <>1) 
  ORDER BY code_piececomptable)
4

3 回答 3

2

你需要给它一个别名:

 SELECT DISTINCT designation FROM 
  (select top 100 percent designation , code_piececomptable
  from cpt_lignepiececomptable  WHERE   code_piececomptable IN 
  (SELECT code_piececomptable 
  FROM cpt_piececomptable  WHERE   terminer  is null or terminer <>1) 
  ORDER BY code_piececomptable) q

注意q附在最后。

于 2013-07-25T12:37:08.037 回答
0

从 cpt_lignepiececomptable WHERE code_piececomptable IN (SELECT code_piececomptable FROM cpt_piececomptable WHERE terminer is null or terminer <>1) ORDER BY code_piececomptable 中选择前 100% 的名称

我认为 Order by 在子查询中给出错误。

尝试使用这个

问候

阿舒托什·艾莉亚

于 2013-07-25T12:36:10.360 回答
0

至于错误,在另一个答案中提到,这是因为如果您从中进行选择,您必须为子查询设置别名。

但是,您可以在此处完全重写您的查询,根本不使用子查询。

SELECT DISTINCT designation
FROM cpt_lignepiececomptable lpc
INNER JOIN cpt_piececomptable cpc ON lpc.code_piececomptable = cpc.code_piececomptable
WHERE cpc.terminer IS NULL OR cpc.terminer <>1
ORDER BY lpc.code_piececomptable
于 2013-07-25T12:45:07.957 回答