MS Query для исключения государственных сокращений - PullRequest
0 голосов
/ 25 августа 2010

У меня есть запрос, из которого я бы хотел исключить штаты США. Я пытаюсь найти все данные, связанные с другими странами, кроме США. У меня есть сокращения для всех штатов США, и я могу либо связать таблицу с запросом и как-то исключить их, либо написать заявление в запросе, чтобы исключить их. Но я тоже не знаю, как это сделать. Я думал, что смогу сделать «Не», «IA», «KY», «WA» », но это не работает. Есть предложения?

Ответы [ 3 ]

1 голос
/ 25 августа 2010

Можете ли вы сделать что-то вроде этого:

SELECT * from table1 as t1
LEFT JOIN StatesTable as st
ON t1.State = st.State
WHERE st.id is null

Вы также можете использовать NOT IN, но Я думаю, что это производительность нет-нет .Пример:

SELECT * FROM table1 where State NOT IN
   (SELECT State from StatesTable)
0 голосов
/ 25 августа 2010

Содержит ли таблица ваших штатов не штаты США, например, провинции Канады?

Если это так, добавьте еще одно логическое поле в таблицу состояний с именем isInUS и пометьте как истинные 50 штатов в США.

Затем проверьте строки, значения связанных состояний которых находятся за пределами США.

В противном случае, если ваша таблица состояний содержит 50 строк, используйте левое соединение Аарона.

0 голосов
/ 25 августа 2010

Я не могу точно вспомнить, какой синтаксис SQL использует MS-Access, но я думаю, что вы можете сделать что-то вроде

SELECT ... FROM ... WHERE StateAbbrev NOT IN ('AK', 'IA', 'KY', 'WA')

Если у вас есть данные о состоянии в таблице, вы можете удалить их паруспособов.Вот один из них:

SELECT ... FROM ... WHERE StateAbbrev NOT IN (SELECT Abbrev FROM States)

Существует много вариантов этого второго метода.Это один, и он работает, он торгует читабельностью для производительности.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...