2013-09-23 1 views
-1

이것이 내 질문입니다. ProductVendor 테이블에서 모든 행을 선택하고 측정 단위 테이블에서 해당 데이터 만 선택하십시오. 제품 공급 업체 테이블의 BusinessEntityID, ProductID, StandardPrice 열 및 측정 단위 테이블의 이름 열을 표시합니다. 이 두 가지 다른 방법을 쓰십시오 - 1은 조인을 사용하고 다른 하나는 WHERE 절을 사용합니다. (. 10 개 승점)nvarchar 값 'Bottle'을 데이터 유형 int로 변환 할 때 변환이 실패했습니다.

이 내 코드입니다 :

USE AdventureWorks2008R2; 
    SELECT CAST(Name as INT),BusinessEntityID, ProductID, StandardPrice, Name 
    FROM Purchasing.ProductVendor Right Outer JOIN Production.UnitMeasure 
    ON Purchasing.ProductVendor.BusinessEntityID = Production.UnitMeasure.Name 

그리고이 오류가 점점 계속 : int 데이터 형식으로 NVARCHAR 값 '병'을 변환 할 때 변환에 실패했습니다.

+1

을 :

당신은 두 개의 테이블을 관련 해당 필드가되도록 ON 기준을 변경 (그리고 간단하게하기 위해 테이블 ​​별칭을 사용) 할 필요가 ? –

+0

'SELECT 42 AS Name, ... ' – zerkms

+0

Convert (int, Name)을 사용해야 하나의 데이터 형식에서 다른 데이터 형식으로 변환해야하기 때문에? – necea0612

답변

1

오류, 당신의 JOIN에서 오는 BusinessEntityIDNameNVARCHAR, 동안, 지능처럼 때 포함하지 않기 때문에 실패하는 INTName 필드를 변환하려고 시도하는 것 두 필드에 대한 당신 JOININT 값. 당신은`Name`을 캐스팅 이유는`Int`로

SELECT pv.BusinessEntityID, pv.ProductID, pv.StandardPrice, m.Name 
FROM Purchasing.ProductVendor pv 
JOIN Production.UnitMeasure m 
    ON pv.BusinessEntityID = m.ID --? 
+0

"특정 질문"이 일치하는 열을 추측 할 수 있도록 스키마 설명을 제공하지 않는 것이 얼마나 일반적입니까? :-) – zerkms

관련 문제