3

データのテーブル (AmenityData) があり、このテーブルの列には E14 7 などの郵便セクターが含まれています

E14などの郵便地区のリストを含むExcelスプレッドシートもあります

AmenityData テーブルからすべてのデータを取得する必要があります。ここでは、郵便区域が郵便セクターに似ています (例: WHERE [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 を使用してテーブルを結合できるかどうかさえわかりません。これまでに行ったことはありません。

4

2 に答える 2

2

私は長い道のりでこれを自分で整理することができました。

データに新しい列を作成し、この列に郵便部門を追加してから、郵便部門を郵便地区に変換しました

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

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

これが完了したら、次を実行しました

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]

そしてすべてうまくいきました。

誰かが助けてくれれば、元の質問が可能かどうかを知りたいです。

J.

于 2010-07-29T10:32:48.747 に答える
1

の右側にワイルドカードが必要ですLIKE

于 2010-07-29T10:35:35.760 に答える