Сопоставление значений между двумя таблицами с использованием IN в поле длинного текста - PullRequest
0 голосов
/ 22 февраля 2019

В настоящее время я использую Access 2016 и пытаюсь создать запрос, который использует другой запрос и таблицу в качестве двух исходных элементов.Ниже приведен пример структуры

table:
entity           code

legal            AP01
admin            AP02
acct             AP03


query1:
date             total            billing

1/1/2019         $10              000000-AP01-abcxyz
1/5/2019         $12              000000-AP01-abcxyz
1/12/2019        $15              000000-AP02-abcxyz

Я пытался подумать о том, как сделать объединение, но поскольку поле для выставления счетов - это длинный текст из-за того, что некоторые строки намного больше, чем 255 символов,об этом не может быть и речи.Так что, может быть, как-то использовать IN, и запрос будет искать значение поля кода в таблице внутри значения поля биллинга в query1 и отображать следующий вывод

    query2:
    date             total            billing                    entity

    1/1/2019         $10              000000-AP01-abcxyz         legal
    1/5/2019         $12              000000-AP01-abcxyz         legal
    1/12/2019        $15              000000-AP02-abcxyz         admin

Используя этот результат, я мог бы сгруппировать по субъектам и суммировать, чтобы показать общие расходы в отделе.Я не хочу распаковывать, чтобы превзойти, запустить vlookup и найти, а затем повторно импортировать его обратно для доступа.Не было бы никакого смысла, если бы я хотел сделать все это в Excel.Можно ли это сделать в запросе доступа?

Ответы [ 2 ]

0 голосов
/ 22 февраля 2019

Вы можете использовать like:

select 
  q.*, t.entity
from query1 as q inner join tablename as t
on q.billing like  '*-' & t.code & '-*'

Из ваших ожидаемых результатов я предполагаю, что code всегда будет внутри billing в форме:...-AAAA-....Если это не так, удалите тире и используйте его следующим образом:

on q.billing like  '*' & t.code & '*'
0 голосов
/ 22 февраля 2019

Вы можете использовать instr():

select q1.*, t1.entity
from q1 join
     t1
     on instr(q1.billing, t1.code) > 0
...