2010-07-29 6 views
3

데이터의 테이블 (AmenityData)이 있으며이 테이블의 열에는 예를 들어 postalsectors가 들어 있습니다. E14 7t-sql, sql 테이블 내부 조인 스프레드 시트

나는 또한 Excel 스프레드 시트에 우편 지역 목록이 포함되어 있습니다. E14

우체국이 우편 부문과 같은 AmenityData 테이블에서 모든 데이터를 가져와야합니다. 예 : [PostalDistricts] + '%'LIKE [PostalSector].

내가 지금 사용하고있는 코드는 오류와 함께 올라오고 있지만 단지 아무것도 반환하지 않으며 나는 결과 많은 반환이있을 것을 알고있다

:

SELECT * FROM AmenityData As a 
INNER JOIN OPENROWSET ('Microsoft.Jet.OLEDB.4.0', 'Excel 8.0;Database=\\Bdzserver\db_creation\postaldistricts.xls;HDR=YES', 'SELECT * FROM [Sheet1$]') As b 
ON b.[PostalDistricts] + '%' LIKE a.[PostalSector] 

나는 경우도 확실하지 않다 LIKE를 사용하여 테이블을 조인 할 수 있습니다.

답변

1

당신은 LIKE의 오른쪽에있는 와일드 카드가 필요합니다.

+0

아, 나 B의 있었다. PostalDistricts] 그것이 ON 했어야 할 경우. PostalSector] LIKE '%'를 +. PostalSector] (B) 등을 포함한다. PostalDistricts] 정확히 – JBoom

+0

를 '%'를 +. 다행이 당신을 위해 일해 줬습니다. – Tobiasopdenbrouw

2

저는이 문제를 해결하기 위해 노력해 왔습니다. 이것이 내가 다음

SELECT * FROM AmenityData As a 
INNER JOIN TypesToGroups As b 
ON a.ClassCode = b.FacilityTypeID 
INNER JOIN Groups As c 
ON b.GroupID = c.GroupID 
INNER JOIN OPENROWSET ('Microsoft.Jet.OLEDB.4.0', 'Excel 8.0;Database=\\Bdzserver\db_creation\postaldistricts.xls;HDR=YES', 'SELECT * FROM [Sheet1$]') As d 
ON d.[PostalDistricts] = a.[PostalDistrict] 
를 실행 완료되자

난 그냥 데이터에 새 열을 생성하고이 칼럼에 postalsectors을 추가 한 후 우편 지역

UPDATE [AmenityData] 
SET PostalDistrict = REPLACE(PostalDistrict , ' ', '') 

UPDATE [AmenityData] 
SET PostalDistrict = LEFT(PostalDistrict ,LEN(PostalDistrict)-1) 

에 우편 부문을 변환

그리고 모두 정상적으로 작동합니다.

누군가가 도울 수 있다면 내 원래의 질문이 가능한지 아직도 알고 싶습니다.

J.