s4/SalesOrderDetails_SAMPLE.sql (97 lines of code) (raw):
SELECT DISTINCT
/** The following dimensions are used as filters on the dashboard **/
CountriesMD.CountryName_LANDX AS Country,
SalesOrders.CreationDate_ERDAT AS CreationDate,
DistributionChannelMD.DistributionChannelName_VTEXT AS DistributionChannel,
SalesOrganizationsMD.SalesOrgName_VTEXT AS SalesOrganization,
DivisionsMD.DivisionName_VTEXT AS Division,
MaterialsMD.MaterialText_MAKTX AS Product,
CurrencyConversion.ToCurrency_TCURR AS TargetCurrency,
/** End of filter dimensions **/
CustomersMD.Name1_NAME1 AS Customer,
SalesOrders.SalesDocument_VBELN AS SalesOrder,
SalesOrders.Item_POSNR AS SalesOrderLineItem,
Deliveries.DeliveryDate_LFDAT AS ReqDeliveryDate,
Deliveries.Date__proofOfDelivery___PODAT AS ActualDeliveryDate,
SalesOrders.BaseUnitofMeasure_MEINS AS BaseUom,
SalesOrders.Currency_WAERK AS LocalCurrency,
SalesOrders.NetValueOfTheSalesOrderInDocumentCurrency_NETWR AS SalesOrderNetValueLocalCurrency,
SalesOrders.CumulativeOrderQuantity_KWMENG AS SalesOrderQty,
SalesOrders.SalesOrderValueLineItemSourceCurrency AS SalesOrderValueLocalCurrency,
SalesOrders.NetValueOfTheSalesOrderInDocumentCurrency_NETWR * CurrencyConversion.ExchangeRate_UKURS AS SalesOrderNetValueTargetCurrency,
SalesOrders.SalesOrderValueLineItemSourceCurrency * CurrencyConversion.ExchangeRate_UKURS AS SalesOrderValueTargetCurrency,
IF(
SalesOrders.RejectionReason_ABGRU IS NOT NULL,
'Canceled',
IF(
Deliveries.ActualQuantityDelivered_InSalesUnits_LFIMG = SalesOrders.CumulativeOrderQuantity_KWMENG
AND SalesOrders.CumulativeOrderQuantity_KWMENG = Billing.ActualBilledQuantity_FKIMG,
'Closed',
'Open'
)
) AS OrderStatus,
(
Deliveries.DeliveryBlock_documentHeader_LIFSK IS NOT NULL
OR Deliveries.BillingBlockInSdDocument_FAKSK IS NOT NULL
) AS IsOrderBlocked,
SalesOrders.DocumentCategory_VBTYP = 'C' AS IsIncomingOrder,
SAFE_DIVIDE(1, CurrencyConversion.ExchangeRate_UKURS) AS ExchangeRate
FROM
`{{ project_id_tgt }}.{{ dataset_reporting_tgt }}.SalesOrders_V2` AS SalesOrders
LEFT JOIN
`{{ project_id_tgt }}.{{ dataset_reporting_tgt }}.Deliveries` AS Deliveries
ON
SalesOrders.SalesDocument_VBELN = Deliveries.SalesOrderNumber_VGBEL
AND SalesOrders.Item_POSNR = Deliveries.SalesOrderItem_VGPOS
AND SalesOrders.Client_MANDT = Deliveries.Client_MANDT
LEFT JOIN
`{{ project_id_tgt }}.{{ dataset_reporting_tgt }}.Billing` AS Billing
ON
SalesOrders.SalesDocument_VBELN = Billing.SalesDocument_AUBEL
AND SalesOrders.Item_POSNR = Billing.SalesDocumentItem_AUPOS
AND SalesOrders.Client_MANDT = Billing.Client_MANDT
LEFT JOIN
`{{ project_id_tgt }}.{{ dataset_reporting_tgt }}.CustomersMD` AS CustomersMD
ON
SalesOrders.SoldtoParty_KUNNR = CustomersMD.CustomerNumber_KUNNR
AND SalesOrders.Client_MANDT = CustomersMD.Client_MANDT
LEFT JOIN
`{{ project_id_tgt }}.{{ dataset_reporting_tgt }}.MaterialsMD` AS MaterialsMD
ON
SalesOrders.MaterialNumber_MATNR = MaterialsMD.MaterialNumber_MATNR
AND SalesOrders.Client_MANDT = MaterialsMD.Client_MANDT
LEFT JOIN
`{{ project_id_tgt }}.{{ dataset_reporting_tgt }}.SalesOrganizationsMD` AS SalesOrganizationsMD
ON
SalesOrders.Client_MANDT = SalesOrganizationsMD.Client_MANDT
AND SalesOrders.SalesOrganization_VKORG = SalesOrganizationsMD.SalesOrg_VKORG
AND SalesOrganizationsMD.Language_SPRAS = MaterialsMD.Language_SPRAS
LEFT JOIN
`{{ project_id_tgt }}.{{ dataset_reporting_tgt }}.DistributionChannelsMD` AS DistributionChannelMD
ON
SalesOrders.Client_MANDT = DistributionChannelMD.Client_MANDT
AND SalesOrders.DistributionChannel_VTWEG = DistributionChannelMD.DistributionChannel_VTWEG
AND DistributionChannelMD.Language_SPRAS = MaterialsMD.Language_SPRAS
LEFT JOIN
`{{ project_id_tgt }}.{{ dataset_reporting_tgt }}.DivisionsMD` AS DivisionsMD
ON MaterialsMD.Client_MANDT = DivisionsMD.Client_MANDT
AND MaterialsMD.Division_SPART = DivisionsMD.Division_SPART
AND DivisionsMD.LanguageKey_SPRAS = MaterialsMD.Language_SPRAS
LEFT JOIN
`{{ project_id_tgt }}.{{ dataset_reporting_tgt }}.CountriesMD` AS CountriesMD
ON
SalesOrders.Client_MANDT = CountriesMD.Client_MANDT
AND CustomersMD.CountryKey_LAND1 = CountriesMD.CountryKey_LAND1
AND CountriesMD.Language_SPRAS = MaterialsMD.Language_SPRAS
LEFT JOIN `{{ project_id_tgt }}.{{ dataset_reporting_tgt }}.CurrencyConversion` AS CurrencyConversion
ON SalesOrders.Client_MANDT = CurrencyConversion.Client_MANDT
AND SalesOrders.CurrencyHdr_WAERK = CurrencyConversion.FromCurrency_FCURR
AND SalesOrders.DocumentDate_AUDAT = CurrencyConversion.ConvDate
##CORTEX-CUSTOMER Modify target currency based on your requirement
AND CurrencyConversion.ToCurrency_TCURR IN UNNEST({{ sap_currencies }})
##CORTEX-CUSTOMER Modify the exchange rate type based on your requirement
AND CurrencyConversion.ExchangeRateType_KURST = 'M'
##CORTEX-CUSTOMER Modify the below baseline filters based on requirement
WHERE
(
SalesOrders.Client_MANDT = '{{ mandt }}'
AND MaterialsMD.Language_SPRAS IN UNNEST({{ sap_languages }})
)