Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 检索客户的主地址状态_Sql_Axapta_Dynamics Ax 2012 - Fatal编程技术网

Sql 检索客户的主地址状态

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

我正在尝试通过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 = 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吗?考虑接受一个答案。