2012-08-04 6 views
0

vistadb4가이 sql view 스크립트를 인식하지 못합니다. 하지만 그것은 sql2005와 함께 일하고 있습니다. 해결책이 있습니까? 감사.Vistadb SQL 구문 오류

SELECT DISTINCT ItemCode, SellingPrice 
FROM   dbo.SalesPurchases AS a 
WHERE  (KeyID = 
          (SELECT  TOP (1) MAX(KeyID) AS KeyID 
          FROM   dbo.SalesPurchases AS b 
          GROUP BY ItemCode, Type 
          HAVING  (ItemCode = a.ItemCode) AND (Type = 'purchase'))) 
GROUP BY ItemCode, SellingPrice 
+0

, 정확히? – Diego

+0

VistaDB 사람은 아니지만 GROUP BY에있는 것과 동일한/단 두 열에 SELECT DISTINCT를 수행하는 것이 이상하게 보입니다. 일반적으로 GROUP BY는 투영에 다른 집계 열 (예 : 평균 또는 개수)이 있음을 의미합니다. 그걸 가지고 놀지는 않았지만, 당신의 하위 선택이 불필요한 것처럼 보입니다. –

+0

감사합니다 :) 오류 509 (공급자 v. 4.2.18.1) : 유효하지 않거나 불완전한 문 : SELECT 줄 번호 : 1; 열 번호 : 1 ________________________ 추가 정보 : 오류 509 (. 제공자 V 4.2.18.1) : 잘못된 또는 불완전한 문 : SELECT 라인 번호 : 6; 열 번호 : 29 오류 571 (공급자 v. 4.2.18.1) : HAVING은 SELECT 결과 또는 GROUP BY에있는 식만 사용할 수 있습니다. Line # : 7; 칼럼 번호 : 65 –

답변

0

확실하지만, 이것 좀하지 :

당신이 얻는 어떤 오류
SELECT 
    DISTINCT a.ItemCode, a.SellingPrice 
FROM   
    dbo.SalesPurchases AS a 
JOIN 
    (SELECT 
    TOP (1) ItemCode, Type, MAX(KeyID) AS KeyID 
    FROM 
    dbo.SalesPurchases AS 
    GROUP BY 
    ItemCode, Type 
    HAVING 
    (ItemCode = a.ItemCode) AND (Type = 'purchase') 
    ) b 
    on b.KeyID = a.KeyID 
GROUP BY 
    a.ItemCode, a.SellingPrice 
+0

고마워. 잘못되었거나 불완전한 문 : 그것 또한 내가 오류 오류 509 (. 제공자 V 4.2.18.1을) 받고 있어요 :(작동하지 라인 번호를 선택 : 1; 열 번호 : 1 개 추가 정보 : 오류 (509)줄 번호 : 6, 열 번호 : 4 오류 569 (공급자 v. 4.2.18.1) :식이 GROUP BY 절에 없습니다. ItemCode Line # : 7; Column # : 14 –

+0

vistadb syntex에 대해 잊어 버려 :)이 스크립트에는 mssql 대안이 있습니까? –

+0

잠깐 ... 같은 필드 목록을 가진 SELECT 절과 GROUP BY에서 DISTINCT를 모두 사용합니다. 그것은 중복이 아닌가? 최상위 SELECT에서 DISTINCT를 제거하십시오. – heximal