2010-07-29 5 views
3

J'ai une table (AmenityData) de données et une colonne de cette table contient des postalsectors e.g. E14 7t-sql, feuille de calcul de jointure de table interne sql

J'ai également une feuille de calcul Excel avec une liste de districts postaux, par ex. E14

Je dois extraire toutes les données du tableau AmenityData où les districts postaux sont comme les secteurs postaux, par ex. O WH [PostalDistricts] + '%' COMME [PostalSector].

Le code j'utilise au moment ne vient pas avec une erreur, mais juste de ne rien renvoyer et je sais qu'il devrait y avoir beaucoup de résultats retournés:

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] 

Je ne suis même pas sûr si vous pouvez joindre des tables en utilisant un LIKE, je n'ai jamais fait cela auparavant.

Répondre

1

Vous devez le caractère générique sur le côté droit du LIKE.

+0

Ahh, j'avais ON b. [PostalDistricts] + '%' LIKE a. [PostalSector] quand il aurait dû être ON a. [PostalSector] LIKE b. [PostalDistricts] + '%' – JBoom

+0

Exactement. Heureux que ça a marché pour toi. – Tobiasopdenbrouw

2

J'ai réussi à résoudre ce problème moi-même au long cours.

Je viens de créer une nouvelle colonne dans les données et ajouté les postalsectors à cette colonne, puis converti les secteurs postaux aux districts postaux

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

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

Une fois que cela a été fait, je courais les suivantes

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] 

et tout a bien fonctionné.

Je voudrais toujours savoir si ma question originale est possible si quelqu'un peut aider.

J.

Questions connexes