2013-11-30 4 views
2

Я использовал код SQL в vb.netНеверный синтаксис рядом с ключевым словом «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)<[?])); 
) 
GROUP BY [Table1 Query].[amel_code], [Table1 Query].[kala_code]; 

Этот код работает правильно, но SQL Web. Лист дает следующую ошибку:

Incorrect syntax near the keyword 'SELECT'. Incorrect syntax near ')'.

, пожалуйста, помогите мне.

ответ

2

Вы должны удалить точку с запятой в конце вложенного запроса и добавить псевдоним к нему:

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]; 

Demo on SQLFiddle.

0

Это то, что вам не хватает:

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]; 
0

Каждый подзапрос или вложенный запрос должен иметь псевдоним. пример:

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

Это был мой ответ на ваш другой вопрос.

Смежные вопросы