As you will know, the *= join operator is not support in SQL server versions 90 and above and yet I find that it is being included in generated queries by SmartClient Version: v11.1p_2020-06-06/PowerEdition Deployment (built 2020-06-06). For example:
The problem is evident in the subselect generated for the Quantity field, which is defined with an includeSummaryFunction attribute:
Without that attribute all works fine (although differently, as would be expected).
I should mention that I have the following property set in server.properties:
Is this by design, or has it perhaps been changed in later versions of SmartGWT? I'm happy to provide more details if you believe this to be something you wish to investigate further.
Code:
SELECT * FROM ( SELECT *, ROW_NUMBER() OVER ( ORDER BY ItemID, ShipmentContainerID) AS rowID FROM ( SELECT TOP 100 PERCENT [sw].CO_ASGMT_CTORD_GRP.orderLineKey, [sw].CO_ASGMT_CTORD_GRP.ID_ORD AS CustomerOrderID, [sw].CO_ASGMT_CTORD_GRP.IC_OR_LTM AS CustomerOrderLineItemSequenceNumber, [sw].CO_ASGMT_CTORD_GRP.ID_CTORD_GRP AS CustomerOrderGroupID, [sw].CO_ASGMT_CTORD_GRP.QU_QTY AS CustomerOrderProductAssignmentQuantity, [sw].CO_ASGMT_CTORD_GRP.productLineAssignmentKey, a0.ID_ITM AS ItemID, a0.DE_ITM AS Description, a0.QU_ORD_CNT AS OrderedItemQuantity, a0.QU_FLF_CNT AS FulfilledItemQuantity, CuOrderGroupID_CuOrPrGroup.CD_TYP_CTORD_GRP AS CustomerOrderProductGroupTypeCode, CuOrderGroupID_CuOrPrGroup.Inventory, ( SELECT sum([TR_ITM_RTL_SHP].QU_ITM_SHP) AS Quantity FROM [sw].[CO_CTORD_GRP] CuOrderGroupID_CuOrPrGroup, [sw].[CO_UOM] a5, [sw].[TR_ITM_RTL_SHP], [sw].[TR_SHP_CT_ORD] a7, [sw].[DO_CTOLTM_PDT] a0, [sw].[AS_CT_ORD_SHPMT_CNR] a6, [sw].[LO_LCN_INV] a3, [sw].[LO_LCN] a4, [sw].[CO_TYP_CTORD_GRP] a8 WHERE [sw].CO_ASGMT_CTORD_GRP.orderLineKey = a0.orderLineKey AND [sw].CO_ASGMT_CTORD_GRP.ID_CTORD_GRP * = CuOrderGroupID_CuOrPrGroup.ID_CTORD_GRP AND [sw].CO_ASGMT_CTORD_GRP.productLineAssignmentKey * = [TR_ITM_RTL_SHP].productLineAssignmentKey AND CuOrderGroupID_CuOrPrGroup.Inventory * = a3.ID_LCN AND a3.ID_LCN * = a4.ID_LCN AND a4.LU_UOM_SZ * = a5.CD_UOM AND a5.CD_UOM * = a6.CD_UOM_LNR AND a5.CD_UOM * = a6.CD_UOM_WT AND CuOrderGroupID_CuOrPrGroup.ID_CTORD_GRP * = a7.ID_CTORD_GRP AND CuOrderGroupID_CuOrPrGroup.CD_TYP_CTORD_GRP * = a8.CD_TYP_CTORD_GRP ) AS Quantity, a6.ID_CT_ORD_SHPMT_CNR AS ShipmentContainerID, a7.ID_SHP AS ShipmentID, a8.NM_TYP_CTORD_GRP AS _lvm_CustomerOrderGroupID FROM [sw].CO_ASGMT_CTORD_GRP JOIN [sw].[DO_CTOLTM_PDT] a0 ON [sw].CO_ASGMT_CTORD_GRP.orderLineKey = a0.orderLineKey LEFT OUTER JOIN [sw].[CO_CTORD_GRP] CuOrderGroupID_CuOrPrGroup ON [sw].CO_ASGMT_CTORD_GRP.ID_CTORD_GRP = CuOrderGroupID_CuOrPrGroup.ID_CTORD_GRP LEFT OUTER JOIN [sw].[LO_LCN_INV] a3 ON CuOrderGroupID_CuOrPrGroup.Inventory = a3.ID_LCN LEFT OUTER JOIN [sw].[LO_LCN] a4 ON a3.ID_LCN = a4.ID_LCN LEFT OUTER JOIN [sw].[CO_UOM] a5 ON a4.LU_UOM_SZ = a5.CD_UOM LEFT OUTER JOIN [sw].[AS_CT_ORD_SHPMT_CNR] a6 ON a5.CD_UOM = a6.CD_UOM_LNR AND a5.CD_UOM = a6.CD_UOM_WT LEFT OUTER JOIN [sw].[TR_SHP_CT_ORD] a7 ON CuOrderGroupID_CuOrPrGroup.ID_CTORD_GRP = a7.ID_CTORD_GRP LEFT OUTER JOIN [sw].[CO_TYP_CTORD_GRP] a8 ON CuOrderGroupID_CuOrPrGroup.CD_TYP_CTORD_GRP = a8.CD_TYP_CTORD_GRP WHERE ( a7.ID_SHP = 411 AND a7.ID_SHP IS NOT NULL ) ORDER BY ItemID, ShipmentContainerID ) x ) y WHERE y.rowID BETWEEN 1 AND 1000
Code:
<field includeFrom="CustomerOrderShipmentItem.Quantity" includeSummaryFunction="sum"/>
I should mention that I have the following property set in server.properties:
Code:
sql.useAnsiJoins=true
Comment