Я пытаюсь создать запрос, который сможет вытащить несколько адресов для поставщиков из Dynamics AX 2009. Я нашел много всего, что мне нужно на VendTable
, но не все.У меня есть около 500 поставщиков с около 150, которые имеют как минимум 2 адреса.Сейчас я могу вытащить только первый адрес.
Вот мой запрос на данный момент:
SELECT ven.CREATEDDATETIME
,'Organization' [Party, Record Type]
,VEN.NAME [Party, Name]
,VEN.NAMEALIAS [Search Name]
,VEN.LANGUAGEID [Party, Language]
,VEN.NAME [Party Address, Name]
,'Business/RemitTo' [Party Address, Purpose]
,VEN.COUNTRYREGIONID [Party Address, Country/Region]
,VEN.ZIPCODE [Party Address, SIP/postal code]
,VEN.STREET [Party Address, Street]
,VEN.CITY [Party Address, City]
,VEN.[STATE] [Party Address, State]
,CON.NAME [Party Contact, Description]
,'Phone' [Party Contact, Type]
,CON.PHONE [Party Contact, Locator]
,'' [Party Contact, Is Primary]
,VEN.ACCOUNTNUM [AccountNum]
,VEN.VENDGROUP [VendGroup]
,VEN.PAYMMODE [PaymMode]
,VEN.PAYMTERMID [Paym Term Id]
,VEN.CASHDISC [CashDisc]
,VEN.DLVMODE [Deliver Mode]
,VEN.DLVTERM [DlvTerm]
,VEN.W9 [W9]
,VEN.TAX1099REPORTS [Tax 1099 Report]
,VEN.TAX1099BOX [Tax 1099 Box]
,'' [Tax 1099 Name Choice]
,VEN.DBA [DBA]
,VEN.TAX1099REGNUM [Tax 1099 Reg Num]
,VEN.INVENTSITEID [Invent SiteId]
,VEN.INVENTLOCATION [Invent Location]
,VEN.TAXGROUP [Sales Tax Group]
, *
FROM VENDTABLE VEN
LEFT JOIN CONTACTPERSON CON ON con.VENDACCOUNT = ven.ACCOUNTNUM
WHERE ven.CREATEDDATETIME > '2018-04-30'
ORDER BY VEN.ACCOUNTNUM
После этого мне нужно найти, где хранятся адреса и как они связаны, чтобы я мог получить оба адреса, когда есть большечем 1.
Я нашел таблицу Address
, которая, кажется, имеет их все, но я не могу понять, как эта таблица связана с VendTable
.
Также естьспособ узнать, какая таблица связана с формой в AX 2009?Я нашел некоторую информацию, которая мне нужна, в Глобальной адресной книге, но это не таблица в БД SQL.
Обновление
По советуиз @TEEKAY ниже, я искал Datamodel
для AX 2009 в попытке найти соединение между таблицей Address
и таблицей VendTable
.Все, что я мог найти, было:
Однако это не работает.Таблица Address
AddrRecId
совпадает с VendTable
RecId
, но не в строках, которые действительно соответствуют данным.Обе таблицы имеют поле Name
, которое содержит название компании-поставщика, например All Phase
.При сопоставлении с использованием Address.AddrRecId = VendTable.RecId
я получаю что-то вроде этого: Как видите, имена не совпадают.Но Address.AddrRecId = VendTable.RecId
совпадают.