2013-09-23 1 views
0

전 데이터베이스의 SQL Server 부분에 완전히 익숙하지 않습니다. 나는 잘 작동하는 분할 Access 데이터베이스를 만들었습니다.업 사이징 액세스 백엔드 SQL 서버 - 쿼리 문제

테스트로서 SQL 서버에 테이블을 업 사이징했습니다. 대부분의 경우 모든 것이 원활하게 진행되었습니다. 그러나 두 가지 쿼리가 더 이상 작동하지 않습니다. 그들은 모두 상당히 복잡한 조합 쿼리입니다. 나는 노조가 내 문제의 주범이라고 믿는다.

처음에는 두 개의 쿼리에 모두 union을 사용했습니다. 그들은 개별적으로 작동하지만 union 쿼리를 사용할 때 "객체가 유효하지 않거나 더 이상 설정되지 않았습니다"라는 오류 메시지가 나타납니다.

둘째로 나는 3 개의 쿼리를 모두 가지고 있습니다. 이들은 첫 번째 경우보다 간단합니다. 이번에는 "표현식이 잘못 입력되었거나 평가하기에 너무 복잡합니다."라는 오류 메시지가 나타납니다.

SQL 서버의 테이블과 관련된 유니언 쿼리에 관련된 것이 있습니까? 도움이나 조언을 주시면 감사하겠습니다.

SELECT scrap.coilnum, Sum(scrap.lnff) AS sumoflnff, scrap.code, scrap.location 
FROM scrap 
WHERE scrap.day>=[Forms]![coilparameters]![Text0] And scrap.day<=[Forms]![coilparameters]![Text2] and scrap.productionline=[Forms]![coilparameters]![combo4] and scrap.coilnum<>0 
GROUP BY scrap.coilnum, scrap.code, scrap.location; 
union all 
SELECT sawscrap.tcoilnum, Sum(sawscrap.length) AS sumoflnff, sawscrap.code, sawscrap.location 
FROM sawscrap 
WHERE sawscrap.day>=[Forms]![coilparameters]![text0] And sawscrap.day<=[Forms]![coilparameters]![text2] and sawscrap.productionline=[Forms]![coilparameters]![combo4] and sawscrap.tcoilnum is not null and sawscrap.tcoilnum<>0 
GROUP BY sawscrap.tcoilnum, sawscrap.code, sawscrap.location; 
UNION ALL 
SELECT sawscrap.bcoilnum, Sum(sawscrap.length) AS sumoflnff, sawScrap.code, sawscrap.location 
FROM sawscrap 
WHERE sawscrap.day>=[Forms]![coilparameters]![text0] And sawscrap.day<=[Forms]![coilparameters]![text2] and sawscrap.productionline=[Forms]![coilparameters]![combo4] and sawscrap.bcoilnum is not null and sawscrap.bcoilnum<>0 
GROUP BY sawscrap.bcoilnum, sawscrap.code, sawscrap.location; 

두 번째가 있습니다.

+0

오류를 제공하는 SQL을 제공 할 수 있습니까? SQL Server의 Union 및 Union All은 특별하지 않습니다. 아주 간단합니다. – Steve

+0

테이블 자체를 제외한 모든 것이 Access에 남아 있습니다. – jpw2007

답변

0

액세스 UNION 쿼리 오류 이러한 종류의 일반적인 원인은 각 열 SELECT 다른 SELECT 문 (S)에서의 동일 위치의 열 (들) 사이의 데이터 형식이 일치한다. 귀하의 경우에는

, scrap.coilnum, sawscrap.tcoilnumsawscrap.bcoilnum 동일의 데이터 유형은 무엇입니까? 다른 기둥은 어때? 그렇지 않은 경우 변환 유형 (예 : CStr 또는 CLng)을 사용해야 모든 유형을 동일하게 만들 수 있습니다.

자세한 내용은 this을 참조하십시오.

+0

동일합니다. 테이블이 Access 백엔드에있는 동안 정확히 동일한 유니온 쿼리가 올바르게 작동합니다. SQL Server로 업 사이징하면 오류가 표시됩니다. – jpw2007

+0

당신은 올바른 길을 가고있었습니다. 문제는 3 개의 코일 번호가 다른 필드 유형을 가졌던 것이 아니라 내가 사용했던 매개 변수와 다른 데이터 유형이라는 것입니다. 도와 주셔서 감사합니다! – jpw2007