从SQL转换为XML?

时间:2016-12-15 12:58:48

标签: sql dynamics-crm fetchxml

我一直在努力将其转换为XML,有人可以建议显示相同的信息,但这次是用XML格式。

SQL在

之下
select so.ordernumber, 
       sod.productidname, 
       so.statuscode, 
       so.statuscodename, 
       sod.quantity, 
       sod.quantityshipped, 
       ip.pcssu_quantityavailable, 
       so.pcssu_stockavailable     
from FilteredSalesOrder so
inner join FilteredSalesOrderDetail sod 
    on sod.salesorderid = so.salesorderid
inner join filteredaccount a 
    on a.accountnumber = so.pcssu_servicecentrecode
inner join Filteredpcssu_inventoryproduct ip 
    on ip.pcssu_product = sod.productid 
    and ip.pcssu_servicecenter = a.accountid
where so.statuscode = '141560004'
and ip.pcssu_quantityavailable >= sod.quantity - sod.quantityshipped

我设法将上面的大部分转换为XML而没有和声明,转换器提出了错误提及

  

错误:WHERE子句中仅支持主实体的条件,请考虑移动别名的条件' ip'到它的JOIN的ON条款。   请注意,由于FetchXML查询的限制,并非所有SQL查询都可以转换为FetchXML。

请告知可能移动和加入和抛出错误的声明是

where so.statuscode = '141560004'
and ip.pcssu_quantityavailable >= sod.quantity - sod.quantityshipped

下面是没有AND

的转换XML
<fetch mapping="logical" version="1.0">
  <entity name="SalesOrder">
    <attribute name="ordernumber" />
    <attribute name="statuscode" />
    <attribute name="statuscodename" />
    <attribute name="pcssu_stockavailable" />
    <filter>
      <condition attribute="statuscode" operator="eq" value="141560004" />
    </filter>
    <link-entity name="SalesOrderDetail" from="salesorderid" to="salesorderid" alias="sod" link-type="inner">
      <attribute name="productidname" />
      <attribute name="quantity" />
      <attribute name="quantityshipped" />
      <link-entity name="pcssu_inventoryproduct" from="pcssu_product" to="productid" alias="ip" link-type="inner">
        <attribute name="pcssu_quantityavailable" />
      </link-entity>
    </link-entity>
    <link-entity name="account" from="accountnumber" to="pcssu_servicecentrecode" alias="a" link-type="inner" />
  </entity>
</fetch>

2 个答案:

答案 0 :(得分:0)

--xml命令行工具中有一个简单的xml输出 - 请参阅此处 - XML output from MySQL

命令行参数<row><field name="id">1</field><field name="name">myname</field></row> - 但输出如下{{1}}

答案 1 :(得分:0)

ip.pcssu_quantityavailable >= sod.quantity - sod.quantityshipped

基本上这种基于算术公式的滤波器无法在fetchxml中实现。在某些情况下,您需要Rollup字段或Calculated字段才能达到相同目的。

否则你可以获取结果集&amp;在您自己的代码中过滤/计算。