하위 쿼리가 포함 된 Webservice에서 사용하는 쿼리가 있습니다. SQL Server Management Studio에서 쿼리를 실행할 때 제대로 작동합니다. 그러나, SqlCommand
으로 웹 서비스에서 이것을 사용하여, 내가 얻을 :System.Data.SqlCommand (C#)에서 하위 쿼리 사용 - SQL Server Mgmt Studio에서 작동하는 구문 오류
System.Data.SqlClient.SqlException : 잘못된 구문 키워드 '가입하기'근처를. 'AS'키워드 근처에 잘못된 구문이 있습니다.
추가 문자를 삽입하면 오류가 하위 쿼리 바로 다음 위치를 나타냅니다.
쿼리는 다음과 같습니다 :
SELECT H.H_ID AS ID, H.Name, TD.TDValue, A.A_ID, A_C.Value
FROM
H CROSS JOIN
A JOIN
(SELECT TD.A_ID, TD.H_ID, MAX(cast(TD.Version AS bigint)) AS Version FROM TD GROUP BY TD.A_ID, TD.H_ID) AS TData ON TData.H_ID = H.H_ID AND TData.A_ID = A.A_ID LEFT JOIN
TD2 ON TD2.H_ID = H.H_ID AND TD2.A_ID = A.A_ID AND TD2.Version = TData.Version LEFT JOIN
A_C ON A_C.A_ID = A.A_ID AND cast(A_C.R AS CHAR) = cast(TD.TDValue AS CHAR)
WHERE (H.Info = 1);
서브 쿼리
이 테이블 TD의 항목의 마지막 버전을 얻을 필요합니다. 더 좋은 방법이 있다면 저도 알려주세요. :-)MS SQL에 존재하지 않는 C#의 SqlCommand에는 제한이 있습니까? 아니면 잘못된 것이 있습니까?
나는 많은 도움을 주셔서 감사합니다.
대신 저장 프로 시저를 사용하지 않는 이유는 무엇입니까? –
정말 유감입니다. 두 시간의 연구로 제 코드를 확인하게되었습니다 : 문자열로 묶어서 줄의 끝 부분 (또는 시작 부분)에 공백을 남겼습니다 ... 너무 짜증나게합니다! – user2083834