t-sql, таблица таблиц внутреннего объединения таблиц sql - PullRequest
3 голосов
/ 29 июля 2010

У меня есть таблица (AmenityData) данных, и столбец этой таблицы содержит почтовые сектора, например, E14 7

У меня также есть электронная таблица Excel со списком почтовых округов, например E14

Iнеобходимо получить все данные из таблицы 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, я никогдасделал это раньше.

Ответы [ 2 ]

2 голосов
/ 29 июля 2010

Мне удалось самому разобраться с этим.

Я только что создал новый столбец в данных и добавил почтовые сектора в этот столбец, а затем преобразовал почтовые сектора в почтовые районы

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.

1 голос
/ 29 июля 2010

Вам нужен подстановочный знак справа от LIKE.

...