Sql 检索客户的主地址状态
我正在尝试通过SQL Server检索状态,该状态填写在客户的主地址上 首先我 正在尝试使用以下查询:Sql 检索客户的主地址状态,sql,axapta,dynamics-ax-2012,Sql,Axapta,Dynamics Ax 2012,我正在尝试通过SQL Server检索状态,该状态填写在客户的主地址上 首先我 正在尝试使用以下查询: DATABASE.dbo.LOGISTICSPOSTALADDRESS AS LPA ON DATABASE.dbo.DIRPARTYTABLE.RECID = LPA.PRIVATEFORPARTY LEFT OUTER JOIN DATABASE.dbo.LOGISTICSADDRESSSTATE ON DATABASE.dbo.LOGISTICSADDRESSSTATE.STATEID
DATABASE.dbo.LOGISTICSPOSTALADDRESS AS LPA ON DATABASE.dbo.DIRPARTYTABLE.RECID = LPA.PRIVATEFORPARTY LEFT OUTER JOIN
DATABASE.dbo.LOGISTICSADDRESSSTATE ON DATABASE.dbo.LOGISTICSADDRESSSTATE.STATEID = LPA.STATE
在此之后,我一直在尝试在
DirPartyTable
上加入LogisticsLocation
,然后在LogisticsPostalAddress
上加入LogisticsLocation
。这给了我结果,但有两个不同状态的记录。我只需要一个主地址的结果。我怎样才能做到这一点呢?给你。明显地更改客户帐户。这会获取主地址的状态,但如果出于某种原因需要,它也会包含整个主地址
需要注意的是LogisticsPostalAddress
表是一个。这意味着这些记录有一个有效的from/to
您希望这样做的原因是,如果您在南街123号有一位客户,您创建了一份销售订单,并向他发送了一张印有该地址的发票,然后您稍后将客户主地址更改为北街654号。如果他们要求重新打印他们的旧发票,你要确保以前的地址仍然存在
我的查询需要注意的一点是,我没有检查GetUTCDate()
SQL函数和AX存储日期/时间的方式之间的时区是否正确。这将是一个小的差异,但要考虑的事情。< /P>
以下是一个视图:
SELECT a.STATE
FROM DIRPARTYPOSTALADDRESSVIEW AS a
WHERE a.ISPRIMARY = 1
AND a.VALIDTO > GETUTCDATE()
AND EXISTS (
SELECT PARTY
FROM CUSTTABLE AS b
WHERE b.PARTY = a.PARTY
AND b.ACCOUNTNUM = 'AAATest' /*Change This*/
)
以下是一些表格的使用:
SELECT d.STATE
FROM CUSTTABLE a
JOIN dirpartytable b ON b.RECID = a.PARTY
JOIN LOGISTICSLOCATION c ON c.RECID = b.PRIMARYADDRESSLOCATION
JOIN LOGISTICSPOSTALADDRESS d ON d.LOCATION = c.RECID
WHERE d.VALIDTO > GETUTCDATE()
AND a.ACCOUNTNUM = 'AAATest' /*Change This*/
你能发布完整的查询而不是部分查询吗?此外,如果您提供表的结构,您将得到更好的答案。您确信LogISTestStestRoad和DrPurTyTabe之间的匹配是1:1吗?考虑接受一个答案。