繁体   English   中英

关键字'SELECT'附近的语法不正确。 ')附近的语法不正确

[英]Incorrect syntax near the keyword 'SELECT'. Incorrect syntax near ')'

我在vb.net中使用了sql代码

SELECT [Table1 Query].[amel_code], [Table1 Query].[kala_code], Sum([Table1 Query].
[SumOfqty]) AS SumOfSumOfqty FROM(
SELECT Table1.amel_code,
       Table1.amani_code,
       Table1.kala_code,
       Sum(Table1.qty) AS SumOfqty
FROM Table1
GROUP BY Table1.amel_code,
         Table1.amani_code,
         Table1.kala_code HAVING (((Table1.amel_code)=[?]) AND ((Table1.amani_code)<[?]));
)
GROUP BY [Table1 Query].[amel_code], [Table1 Query].[kala_code];

这段代码工作正常,但是sql web。 Sheet提供以下错误:

关键字'SELECT'附近的语法不正确。 ')'附近的语法不正确。

请帮我。

您需要在嵌套查询的末尾删除分号,并为其添加别名:

SELECT [Table1 Query].[amel_code], [Table1 Query].[kala_code], Sum([Table1 Query].[SumOfqty]) AS SumOfSumOfqty
FROM (
SELECT Table1.amel_code,
       Table1.amani_code,
       Table1.kala_code,
       Sum(Table1.qty) AS SumOfqty
FROM Table1
GROUP BY Table1.amel_code,
         Table1.amani_code,
         Table1.kala_code
HAVING (((Table1.amel_code)=[?])
         AND ((Table1.amani_code)<[?])) -- ; <<== Remove this semicolon
) [Table1 Query] -- <<== Add this alias
GROUP BY [Table1 Query].[amel_code], [Table1 Query].[kala_code];

在SQLFiddle上演示。

这就是你所缺少的:

1)将别名Table1 Query提供给嵌套查询。 错误说:它无法识别[Table1 Query]的用途。 所以你必须将该别名赋予子查询。

SELECT [Table1 Query].[amel_code], [Table1 Query].[kala_code], Sum([Table1 Query].[SumOfqty]) AS SumOfSumOfqty 
FROM(
SELECT Table1.amel_code,
       Table1.amani_code,
       Table1.kala_code,
       Sum(Table1.qty) AS SumOfqty
FROM Table1
GROUP BY Table1.amel_code,
         Table1.amani_code,
         Table1.kala_code HAVING (((Table1.amel_code)=[?]) AND ((Table1.amani_code)<[?]))
) [Table1 Query]
GROUP BY [Table1 Query].[amel_code], [Table1 Query].[kala_code];

每个子查询或嵌套查询都应该有别名。 例:

SELECT *
FROM (SELECT * FROM T1 WHERE ID>50) D

这是我对你的另一个问题的回答。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM