s4/SalesOrders.sql (443 lines of code) (raw):

WITH TCURX AS ( -- Joining to this table is necesssary to fix the decimal place of -- amounts for non-decimal-bASed currencies. SAP stores these amounts -- offset by a factor of 1/100 within the system (FYI this gets -- corrected when a user observes these in the GUI) Currencies w/ -- decimals are unimpacted. -- -- Example of impacted currencies JPY, IDR, KRW, TWD -- Example of non-impacted currencies USD, GBP, EUR -- Example 1,000 JPY will appear AS 10.00 JPY SELECT DISTINCT CURRKEY, CAST(POWER(10, 2 - COALESCE(CURRDEC, 0)) AS NUMERIC) AS CURRFIX FROM `{{ project_id_src }}.{{ dataset_cdc_processed_s4 }}.tcurx` ), AGGPRCD_ELEMENTS AS ( SELECT PRCD_ELEMENTS.KNUMV, PRCD_ELEMENTS.KPOSN, PRCD_ELEMENTS.CLIENT, SUM(IF(PRCD_ELEMENTS.KRECH = 'C' AND PRCD_ELEMENTS.KOAID = 'B' AND PRCD_ELEMENTS.KINAK IS NULL, PRCD_ELEMENTS.KWERT, NULL)) AS ListPrice, SUM(IF(PRCD_ELEMENTS.KRECH = 'C' AND PRCD_ELEMENTS.KOAID = 'B' AND PRCD_ELEMENTS.KSCHL = 'PB00', PRCD_ELEMENTS.KWERT, NULL)) AS AdjustedPrice, SUM(IF(PRCD_ELEMENTS.KOAID = 'A' AND PRCD_ELEMENTS.KINAK IS NULL, PRCD_ELEMENTS.KWERT, NULL)) AS Discount, SUM(IF(PRCD_ELEMENTS.KFKIV = 'X' AND PRCD_ELEMENTS.KOAID = 'B' AND PRCD_ELEMENTS.KINAK IS NULL, PRCD_ELEMENTS.KWERT, NULL)) AS InterCompanyPrice FROM `{{ project_id_src }}.{{ dataset_cdc_processed_s4 }}.prcd_elements` AS PRCD_ELEMENTS GROUP BY PRCD_ELEMENTS.KNUMV, PRCD_ELEMENTS.KPOSN, PRCD_ELEMENTS.CLIENT ), AGGVBEP AS ( SELECT MANDT, VBELN, POSNR, SUM(BMENG) AS ConfirmedOrderQuantity_BMENG FROM `{{ project_id_src }}.{{ dataset_cdc_processed_s4 }}.vbep` GROUP BY MANDT, VBELN, POSNR ), AGGVBPAITEM AS ( SELECT VBPA.mandt, VBPA.vbeln, VBPA.posnr, MAX(IF((VBPA.PARVW = 'AG'), VBPA.KUNNR, NULL)) AS SoldToPartyItem_KUNNR, MAX(IF((VBPA.PARVW = 'AG'), KNA1.name1, NULL)) AS SoldToPartyItemName_KUNNR, MAX( IF((VBPA.PARVW = 'WE'), VBPA.KUNNR, NULL)) AS ShipToPartyItem_KUNNR, MAX( IF((VBPA.PARVW = 'WE'), KNA1.name1, NULL)) AS ShipToPartyItemName_KUNNR, MAX( IF((VBPA.PARVW = 'RE'), VBPA.KUNNR, NULL)) AS BillToPartyItem_KUNNR, MAX( IF((VBPA.PARVW = 'RE'), KNA1.name1, NULL)) AS BillToPartyItemName_KUNNR, MAX( IF((VBPA.PARVW = 'RG'), VBPA.KUNNR, NULL)) AS PayerItem_KUNNR, MAX( IF((VBPA.PARVW = 'RG'), KNA1.name1, NULL)) AS PayerItemName_KUNNR FROM `{{ project_id_src }}.{{ dataset_cdc_processed_s4 }}.vbpa` AS VBPA INNER JOIN `{{ project_id_src }}.{{ dataset_cdc_processed_s4 }}.kna1` AS KNA1 ON VBPA.mandt = KNA1.mandt AND VBPA.kunnr = KNA1.kunnr GROUP BY VBPA.mandt, VBPA.vbeln, VBPA.posnr ), AGGVBPAHEADER AS ( SELECT VBPA.mandt, VBPA.vbeln, VBPA.posnr, MAX(IF((VBPA.PARVW = 'AG'), VBPA.KUNNR, NULL)) AS SoldToPartyHeader_KUNNR, MAX(IF((VBPA.PARVW = 'AG'), KNA1.name1, NULL)) AS SoldToPartyHeaderName_KUNNR, MAX(IF((VBPA.PARVW = 'WE'), VBPA.KUNNR, NULL)) AS ShipToPartyHeader_KUNNR, MAX(IF((VBPA.PARVW = 'WE'), KNA1.name1, NULL)) AS ShipToPartyHeaderName_KUNNR, MAX(IF((VBPA.PARVW = 'RE'), VBPA.KUNNR, NULL)) AS BillToPartyHeader_KUNNR, MAX(IF((VBPA.PARVW = 'RE'), KNA1.name1, NULL)) AS BillToPartyHeaderName_KUNNR, MAX(IF((VBPA.PARVW = 'RG'), VBPA.KUNNR, NULL)) AS PayerHeader_KUNNR, MAX(IF((VBPA.PARVW = 'RG'), KNA1.name1, NULL)) AS PayerHeaderName_KUNNR FROM `{{ project_id_src }}.{{ dataset_cdc_processed_s4 }}.vbpa` AS VBPA INNER JOIN `{{ project_id_src }}.{{ dataset_cdc_processed_s4 }}.kna1` AS KNA1 ON VBPA.mandt = KNA1.mandt AND VBPA.kunnr = KNA1.kunnr -- join `{{ project_id_src }}.SAP_CDC_PROCESSED_ECC.vbap` VBAP -- ON -- VBAP.mandt=VBPA.mandt -- AND VBAP.vbeln=VBPA.vbeln -- AND VBPA.posnr is NULL or VBPA.posnr='000000' GROUP BY VBPA.mandt, VBPA.vbeln, VBPA.posnr ) SELECT VBAK.MANDT AS Client_MANDT, VBAK.VBELN AS SalesDocument_VBELN, VBAP.POSNR AS Item_POSNR, VBAP.MATNR AS MaterialNumber_MATNR, VBAP.ERDAT AS CreationDate_ERDAT, VBAK.ERZET AS CreationTime_ERZET, VBAK.ERNAM AS CreatedBy_ERNAM, VBAK.ANGDT AS QuotationDateFrom_ANGDT, VBAK.BNDDT AS QuotationDateTo_BNDDT, VBAK.AUDAT AS DocumentDate_AUDAT, VBAK.VBTYP AS DocumentCategory_VBTYP, VBAK.TRVOG AS TransactionGroup_TRVOG, VBAK.AUART AS SalesDocumentType_AUART, VBAK.AUGRU AS Reason_AUGRU, VBAK.GWLDT AS WarrantyDate_GWLDT, VBAK.SUBMI AS CollectiveNumber_SUBMI, VBAK.LIFSK AS DeliveryBlock_LIFSK, VBAK.FAKSK AS BillingBlock_FAKSK, VBAK.WAERK AS CurrencyHdr_WAERK, VBAK.VKORG AS SalesOrganization_VKORG, VBAK.VTWEG AS DistributionChannel_VTWEG, VBAK.SPART AS DivisionHdr_SPART, VBAK.VKGRP AS SalesGroup_VKGRP, VBAK.VKBUR AS SalesOffice_VKBUR, VBAK.GSBER AS BusinessAreaHdr_GSBER, VBAK.GSKST AS CostCtrBusinessArea_GSKST, VBAK.GUEBG AS AgreementValidFrom_GUEBG, VBAK.GUEEN AS AgreementValidTo_GUEEN, VBAK.KNUMV AS ConditionNumber_KNUMV, VBAK.VDATU AS RequestedDeliveryDate_VDATU, VBAK.VPRGR AS ProposedDateType_VPRGR, VBAK.AUTLF AS CompleteDeliveryFlag_AUTLF, VBAK.VBKLA AS OriginalSystem_VBKLA, VBAK.VBKLT AS DocumentIndicator_VBKLT, VBAK.KALSM AS PricingProcedure_KALSM, VBAK.VSBED AS ShippingConditions_VSBED, VBAK.FKARA AS ProposedBillingType_FKARA, VBAK.AWAHR AS SalesProbability_AWAHR, VBAK.KTEXT AS SearchTermForProductProposal_KTEXT, VBAK.BSTNK AS CustomerPurchaseOrderNumber_BSTNK, VBAK.BSARK AS CustomerPurchaseOrderType_BSARK, VBAK.BSTDK AS CustomerPurchaseOrdERDATe_BSTDK, VBAK.BSTZD AS PurchaseOrderNumberSupplement_BSTZD, VBAK.IHREZ AS YourReference_IHREZ, VBAK.BNAME AS NameOfOrderer_BNAME, VBAK.TELF1 AS TelephoneNumber_TELF1, VBAK.MAHZA AS NumberOfContactsFromTheCustomer_MAHZA, VBAK.MAHDT AS LastCustomerContactDate_MAHDT, VBAK.KUNNR AS SoldToParty_KUNNR, VBAK.KOSTL AS CostCenterHdr_KOSTL, VBAK.STAFO AS UpdateGroupForStatistics_STAFO, VBAK.STWAE AS StatisticScurrency_STWAE, VBAK.AEDAT AS ChangedOn_AEDAT, VBAK.KVGR1 AS CustomerGroup1_KVGR1, VBAK.KVGR2 AS CustomerGroup2_KVGR2, VBAK.KVGR3 AS CustomerGroup3_KVGR3, VBAK.KVGR4 AS CustomerGroup4_KVGR4, VBAK.KVGR5 AS CustomerGroup5_KVGR5, VBAK.KNUMA AS Agreement_KNUMA, VBAK.KOKRS AS ControllingArea_KOKRS, VBAK.PS_PSP_PNR AS WBSElementHdr_PS_PSP_PNR, VBAK.KURST AS ExchangeRateType_KURST, VBAK.KKBER AS CreditControlArea_KKBER, VBAK.KNKLI AS CustomerCreditLimitRef_KNKLI, VBAK.GRUPP AS CustomerCreditGroup_GRUPP, VBAK.SBGRP AS CreditRepresentativeGroupForCreditManagement_SBGRP, VBAK.CTLPC AS RiskCategory_CTLPC, VBAK.CMWAE AS CurrencyKeyOfCreditControlArea_CMWAE, VBAK.CMFRE AS ReleaseDateOfTheDocumentDeterminedByCreditManagement_CMFRE, VBAK.CMNUP AS DateOfNextCreditCheckOfDocument_CMNUP, VBAK.CMNGV AS NextDate_CMNGV, VBAK.AMTBL AS ReleasedCreditValueOfTheDocument_AMTBL, VBAK.HITYP_PR AS HierarchyTypeForPricing_HITYP_PR, VBAK.ABRVW AS UsageIndicator_ABRVW, VBAK.ABDIS AS MRPForDeliveryScheduleTypes_ABDIS, VBAK.VGBEL AS DocumentNumberOfTheReferenceDocument_VGBEL, VBAK.OBJNR AS ObjectNumberAtHeaderLevel_OBJNR, VBAK.BUKRS_VF AS CompanyCodeToBeBilled_BUKRS_VF, VBAK.TAXK1 AS AlternativeTaxClassification_TAXK1, VBAK.TAXK2 AS TaxClassification2_TAXK2, VBAK.TAXK3 AS TaxClassification3_TAXK3, VBAK.TAXK4 AS TaxClassification4_TAXK4, VBAK.TAXK5 AS TaxClassification5_TAXK5, VBAK.TAXK6 AS TaxClassification6_TAXK6, VBAK.TAXK7 AS TaxClassification7_TAXK7, VBAK.TAXK8 AS TaxClassification8_TAXK8, VBAK.TAXK9 AS TaxClassification9_TAXK9, VBAK.XBLNR AS ReferenceDocumentNumber_XBLNR, VBAK.ZUONR AS ASsignmentNumber_ZUONR, VBAK.VGTYP AS PreDocCategory_VGTYP, VBAK.AUFNR AS OrderNumberHdr_AUFNR, VBAK.QMNUM AS NotificationNo_QMNUM, VBAK.VBELN_GRP AS MasterContractNumber_VBELN_GRP, VBAK.STCEG_L AS TaxDestinationCountry_STCEG_L, VBAK.LANDTX AS TaxDepartureCountry_LANDTX, VBAK.HANDLE AS InternationalUniqueKey_HANDLE, VBAK.PROLI AS DangerousGoodsManagementProfile_PROLI, VBAK.CONT_DG AS DangerousGoodsFlag_CONT_DG, VBAK.UPD_TMSTMP AS UTCTimeStampL_UPD_TMSTMP, VBAK.ABSTK AS RejectionsStatus_ABSTK, VBAK.BESTK AS ConfirmationStatus_BESTK, VBAK.CMGST AS OverallStatusOfCreditChecks_CMGST, VBAK.DCSTK AS DelayStatus_DCSTK, VBAK.FSSTK AS BillingBlockStatus_FSSTK, VBAK.GBSTK AS OverallProcessingStatus_GBSTK, VBAK.LFGSK AS OverallDeliveryStatus_LFGSK, VBAP.MATWA AS MaterialEntered_MATWA, VBAP.PMATN AS PricingReferenceMaterial_PMATN, VBAP.CHARG AS BatchNumber_CHARG, VBAP.MATKL AS MaterialGroup_MATKL, VBAP.ARKTX AS ShortText_ARKTX, VBAP.PSTYV AS ItemCategory_PSTYV, VBAP.POSAR AS ItemType_POSAR, VBAP.LFREL AS RelevantForDelivery_LFREL, VBAP.FKREL AS RelevantForBilling_FKREL, VBAP.UEPOS AS BOMItemLevel_UEPOS, VBAP.GRPOS AS AlternativeForItem_GRPOS, VBAP.ABGRU AS RejectionReason_ABGRU, VBAP.PRODH AS ProductHierarchy_PRODH, VBAP.ZWERT AS TargetValue_ZWERT, VBAP.ZMENG AS TargetQuantityUoM_ZMENG, VBAP.ZIEME AS TargetQuantityUoM_ZIEME, VBAP.UMZIZ AS BaseTargetConversionFactor_UMZIZ, VBAP.UMZIN AS ConversionFactor_UMZIN, VBAP.MEINS AS BaseUnitOfMeasure_MEINS, VBAP.SMENG AS ScaleQuantity_SMENG, VBAP.ABLFZ AS RoundingQuantityForDelivery_ABLFZ, VBAP.ABDAT AS ReconciliationDate_ABDAT, VBAP.ABSFZ AS AllowedDeviation_ABSFZ, VBAP.POSEX AS ItemNumberOfTheUnderlyingPurchaseOrder_POSEX, VBAP.KDMAT AS CustomerMaterialNumber_KDMAT, VBAP.KBVER AS AllowedDeviationPercent_KBVER, VBAP.KEVER AS DaysByWhichTheQuantityCanBeShifted_KEVER, VBAP.VKGRU AS RepairProcessing_VKGRU, VBAP.VKAUS AS UsageIndicator_VKAUS, VBAP.GRKOR AS DeliveryGroup_GRKOR, VBAP.FMENG AS QuantityIsFixed_FMENG, VBAP.UEBTK AS UnlimitedOverDeliveryAllowed_UEBTK, VBAP.UEBTO AS OverDeliveryToleranceLimit_UEBTO, VBAP.UNTTO AS UnderDeliveryToleranceLimit_UNTTO, VBAP.FAKSP AS BillingBlockforitem_FAKSP, VBAP.ATPKZ AS ReplacementPart_ATPKZ, VBAP.RKFKF AS FormOfBillingForCO_RKFKF, VBAP.SPART AS Division_SPART, VBAP.GSBER AS BusinessArea_GSBER, VBAP.NETWR AS NetPrice_NETWR, VBAP.WAERK AS Currency_WAERK, VBAP.ANTLF AS MaximumPartialDeliveries_ANTLF, VBAP.KZTLF AS PartialDeliveryAtItemLevel_KZTLF, VBAP.CHSPL AS BatchSplitAllowed_CHSPL, VBAP.KWMENG AS CumulativeOrderQuantity_KWMENG, VBAP.LSMENG AS CumulativeTargetDeliveryQty_LSMENG, VBAP.KBMENG AS CumulativeConfirmedQuantity_KBMENG, VBAP.KLMENG AS CumulativeConfirmedQuantityInBaseUoM_KLMENG, VBAP.VRKME AS SalesUnit_VRKME, VBAP.UMVKZ AS NumeratorQty_UMVKZ, VBAP.UMVKN AS DenominatorQty_UMVKN, VBAP.BRGEW AS GrossWeightOfItem_BRGEW, VBAP.NTGEW AS NetWeightOfItem_NTGEW, VBAP.GEWEI AS WeightUnit_GEWEI, VBAP.VOLUM AS VolumeOfTheItem_VOLUM, VBAP.VOLEH AS VolumeUnit_VOLEH, VBAP.VBELV AS OriginatingDocument_VBELV, VBAP.POSNV AS OriginatingItem_POSNV, VBAP.VGBEL AS ReferenceDocument_VGBEL, VBAP.VGPOS AS ReferenceItem_VGPOS, VBAP.VOREF AS ReferenceIndicator_VOREF, VBAP.UPFLU AS UpdateIndicator_UPFLU, VBAP.ERLRE AS CompletionRuleForQuotation_ERLRE, VBAP.LPRIO AS DeliveryPriority_LPRIO, VBAP.WERKS AS Plant_WERKS, VBAP.LGORT AS StorageLocation_LGORT, VBAP.VSTEL AS ShippingReceivingPoint_VSTEL, VBAP.ROUTE AS Route_ROUTE, VBAP.STKEY AS BOMOrigin_STKEY, VBAP.STDAT AS BOMDate_STDAT, VBAP.STLNR AS BOM_STLNR, VBAP.AWAHR AS OrderProbabilityOfTheItem_AWAHR, VBAP.TAXM1 AS TaxClassification1_TAXM1, VBAP.TAXM2 AS TaxClassification1_TAXM2, VBAP.TAXM3 AS TaxClassification1_TAXM3, VBAP.TAXM4 AS TaxClassification1_TAXM4, VBAP.TAXM5 AS TaxClassification1_TAXM5, VBAP.TAXM6 AS TaxClassification1_TAXM6, VBAP.TAXM7 AS TaxClassification1_TAXM7, VBAP.TAXM8 AS TaxClassification1_TAXM8, VBAP.TAXM9 AS TaxClassification1_TAXM9, VBAP.VBEAF AS FixedShippingProcessingTimeInDays_VBEAF, VBAP.VBEAV AS VariableShippingProcessingTimeInDays_VBEAV, VBAP.VGREF AS PrecedingDocumentHasResultedFromReference_VGREF, VBAP.NETPR AS NetPrice_NETPR, VBAP.KPEIN AS ConditionPricingUnit_KPEIN, VBAP.KMEIN AS ConditionUnit_KMEIN, VBAP.SHKZG AS ReturnsItem_SHKZG, VBAP.SKTOF AS CashDiscountIndicator_SKTOF, VBAP.MTVFP AS CheckingGroupForAvailabilityCheck_MTVFP, VBAP.SUMBD AS SummingUpOfRequirements_SUMBD, VBAP.KONDM AS MaterialPricingGroup_KONDM, VBAP.KTGRM AS AccountAssignmentGroupForThisMaterial_KTGRM, VBAP.BONUS AS VolumeRebateGroup_BONUS, VBAP.PROVG AS CommissionGroup_PROVG, VBAP.PRSOK AS PricingIsOK_PRSOK, VBAP.BWTAR AS ValuationType_BWTAR, VBAP.BWTEX AS SeparateValuation_BWTEX, VBAP.XCHPF AS BatchManagementRequirementIndicator_XCHPF, VBAP.XCHAR AS BatchManagementIndicator_XCHAR, VBAP.LFMNG AS MinimumDeliveryQuantityInDeliveryNoteProcessing_LFMNG, VBAP.STAFO AS UpdateGroupForStatisticsUpdate_STAFO, VBAP.KZWI1 AS SubTotal1FromPricingProcedureForCondition_KZWI1, VBAP.KZWI2 AS SubTotal2FromPricingProcedureForCondition_KZWI2, VBAP.KZWI3 AS SubTotal3FromPricingProcedureForCondition_KZWI3, VBAP.KZWI4 AS SubTotal4FromPricingProcedureForCondition_KZWI4, VBAP.KZWI5 AS SubTotal5FromPricingProcedureForCondition_KZWI5, VBAP.KZWI6 AS SubTotal6FromPricingProcedureForCondition_KZWI6, VBAP.STCUR AS ExchangeRateForStatistics_STCUR, VBAP.AEDAT AS LastChangedOn_AEDAT, VBAP.EAN11 AS InternationalArticleNumber_EAN11, VBAP.FIXMG AS DeliveryDateAndQuantityFixed_FIXMG, VBAP.PRCTR AS ProfitCenter_PRCTR, VBAP.MVGR1 AS MaterialGroup1_MVGR1, VBAP.MVGR2 AS MaterialGroup2_MVGR2, VBAP.MVGR3 AS MaterialGroup3_MVGR3, VBAP.MVGR4 AS MaterialGroup4_MVGR4, VBAP.MVGR5 AS MaterialGroup5_MVGR5, VBAP.KMPMG AS ComponentQuantity_KMPMG, VBAP.SUGRD AS ReasonForMaterialSubstitution_SUGRD, VBAP.SOBKZ AS SpecialStockIndicator_SOBKZ, VBAP.VPZUO AS AllocationIndicator_VPZUO, VBAP.PAOBJNR AS ProfitabilitySegmentNumber_PAOBJNR, VBAP.PS_PSP_PNR AS WBSElement_PS_PSP_PNR, VBAP.AUFNR AS OrderNumber_AUFNR, VBAP.VPMAT AS PlanningMaterial_VPMAT, VBAP.VPWRK AS PlanningPlant_VPWRK, VBAP.PRBME AS BaseUnitOfMeasureForProductGroup_PRBME, VBAP.UMREF AS ConversionFactorQuantities_UMREF, VBAP.KNTTP AS AccountAssignmentCategory_KNTTP, VBAP.KZVBR AS ConsumptionPosting_KZVBR, VBAP.SERNR AS BOMExplosionNumber_SERNR, VBAP.OBJNR AS ObjectNumberAtItemLevel_OBJNR, VBAP.ABGRS AS ResultsAnalysisKey_ABGRS, VBAP.BEDAE AS RequirementsType_BEDAE, VBAP.CMPRE AS ItemCreditPrice_CMPRE, VBAP.CMTFG AS CreditBlock_CMTFG, VBAP.CMPNT AS RelevantForCredit_CMPNT, VBAP.CUOBJ AS Configuration_CUOBJ, VBAP.CUOBJ_CH AS InternalObjectNumberOfTheBatchClassification_CUOBJ_CH, VBAP.CEPOK AS StatusExpectedPrice_CEPOK, VBAP.KOUPD AS ConditionUpdate_KOUPD, VBAP.SERAIL AS SerialNumberProfile_SERAIL, VBAP.ANZSN AS NumberOfSerialNumbers_ANZSN, VBAP.NACHL AS CustomerHasNotPostedGoodsReceipt_NACHL, VBAP.MAGRV AS PackagingMaterials_MAGRV, VBAP.MPROK AS StatusManualPriceChange_MPROK, VBAP.VGTYP AS PrecedingDocCategory_VGTYP, VBAP.KALNR AS CostEstimateNumber_KALNR, VBAP.KLVAR AS CostingVariant_KLVAR, VBAP.SPOSN AS BOMItemNumber_SPOSN, VBAP.KOWRR AS StatisticalValues_KOWRR, VBAP.STADAT AS StatisticsDate_STADAT, VBAP.EXART AS BusinessTransactionTypeForForeignTrade_EXART, VBAP.PREFE AS ImportExportFlag_PREFE, VBAP.KNUMH AS NumberOfConditionRecord_KNUMH, VBAP.CLINT AS InternalClassNumber_CLINT, VBAP.STLTY AS BOMCategory_STLTY, VBAP.STLKN AS BOMItemNodeNumber_STLKN, VBAP.STPOZ AS InternalCounter_STPOZ, VBAP.STMAN AS InconsistentConfiguration_STMAN, VBAP.ZSCHL_K AS OverHeadKey_ZSCHL_K, VBAP.KALSM_K AS CostingSheet_KALSM_K, VBAP.KALVAR AS CostingVariant_KALVAR, VBAP.KOSCH AS ProductAllocation_KOSCH, VBAP.UPMAT AS PricingReferenceMaterial_UPMAT, VBAP.UKONM AS MaterialPricingGroup_UKONM, VBAP.MFRGR AS MaterialFreightGroup_MFRGR, VBAP.PLAVO AS PlanningReleASeRegulation_PLAVO, VBAP.KANNR AS KANBAN_KANNR, VBAP.CMPRE_FLT AS ItemCreditPrice_CMPRE_FLT, VBAP.ABFOR AS FormOfPaymentGuarantee_ABFOR, VBAP.ABGES AS GuaranteedFactor_ABGES, VBAP.WKTNR AS ValueContractNo_WKTNR, VBAP.WKTPS AS ValueContractItem_WKTPS, VBAP.SKOPF AS AssortmentModule_SKOPF, VBAP.KZBWS AS ValuationofSpecialStock_KZBWS, VBAP.WGRU1 AS MaterialGroupHierarchy1_WGRU1, VBAP.WGRU2 AS MaterialGroupHierarchy2_WGRU2, VBAP.KNUMA_PI AS Promotion_KNUMA_PI, VBAP.KNUMA_AG AS SalesDeal_KNUMA_AG, VBAP.KZFME AS LeadingUoM_KZFME, VBAP.LSTANR AS FreeGoodsDeliveryControl_LSTANR, VBAP.TECHS AS ParameterVariant_TECHS, VBAP.BERID AS MRPArea_BERID, VBAP.PCTRF AS ProfitCenterForBilling_PCTRF, VBAP.STOCKLOC AS ManagingLocation_STOCKLOC, VBAP.SLOCTYPE AS TypeOfFirstInventory_SLOCTYPE, VBAP.MSR_RET_REASON AS ReturnReason_MSR_RET_REASON, VBAP.MSR_REFUND_CODE AS ReturnsRefundCode_MSR_REFUND_CODE, VBAP.MSR_APPROV_BLOCK AS ApprovalBlock_MSR_APPROV_BLOCK, VBAP.NRAB_KNUMH AS ConditionRecordNumber_NRAB_KNUMH, VBAP.TRMRISK_RELEVANT AS RiskRelevancyInSales_TRMRISK_RELEVANT, VBAP.HANDOVERLOC AS LocationForAPhysicalHandOverOfGoods_HANDOVERLOC, VBAP.HANDOVERDATE AS HandOverDateAtTheHandOverLocation_HANDOVERDATE, VBAP.HANDOVERTIME AS HandOverTimeAtTheHandOverLocation_HANDOVERTIME, VBAP.TC_AUT_DET AS TaxCodeAutomaticallyDetermined_TC_AUT_DET, VBAP.MANUAL_TC_REASON AS ManualTaxCodeReason_MANUAL_TC_REASON, VBAP.FISCAL_INCENTIVE AS TaxIncentiveType_FISCAL_INCENTIVE, VBAP.FISCAL_INCENTIVE_ID AS IncentiveID_FISCAL_INCENTIVE_ID, VBAP.SPCSTO AS NotAFiscalSpecialCaseForCFOPDetermination_SPCSTO, VBAP.KOSTL AS CostCenter_KOSTL, VBAP.FONDS AS Fund_FONDS, VBAP.FISTL AS FundsCenter_FISTL, VBAP.FKBER AS FunctionalArea_FKBER, AGGVBPAITEM.SoldToPartyItem_KUNNR, AGGVBPAITEM.SoldToPartyItemName_KUNNR, AGGVBPAITEM.ShipToPartyItem_KUNNR, AGGVBPAITEM.ShipToPartyItemName_KUNNR, AGGVBPAITEM.BillToPartyItem_KUNNR, AGGVBPAITEM.BillToPartyItemName_KUNNR, AGGVBPAITEM.PayerItem_KUNNR, AGGVBPAITEM.PayerItemName_KUNNR, AGGVBPAHEADER.SoldToPartyHeader_KUNNR, AGGVBPAHEADER.SoldToPartyHeaderName_KUNNR, AGGVBPAHEADER.ShipToPartyHeader_KUNNR, AGGVBPAHEADER.ShipToPartyHeaderName_KUNNR, AGGVBPAHEADER.BillToPartyHeader_KUNNR, AGGVBPAHEADER.BillToPartyHeaderName_KUNNR, AGGVBPAHEADER.PayerHeader_KUNNR, AGGVBPAHEADER.PayerHeaderName_KUNNR, AGGPRCD_ELEMENTS.KNUMV, AGGPRCD_ELEMENTS.KPOSN, AGGPRCD_ELEMENTS.ListPrice, AGGPRCD_ELEMENTS.AdjustedPrice, AGGPRCD_ELEMENTS.InterCompanyPrice, AGGPRCD_ELEMENTS.Discount, AGGVBEP.ConfirmedOrderQuantity_BMENG, COALESCE(VBAK.NETWR * tcurx_VBAK.CURRFIX, VBAK.NETWR) AS NetValueOfTheSalesOrderInDocumentCurrency_NETWR, COALESCE(VBAP.WAVWR * tcurx_VBAP.CURRFIX, VBAP.WAVWR) AS CostInDocumentCurrency_WAVWR, -- Sales Order Value at item level COALESCE(VBAP.MWSBP * tcurx_VBAP.CURRFIX, VBAP.MWSBP) AS TaxAmountInDocumentCurrency_MWSBP, EXTRACT(YEAR FROM VBAK.ERDAT) AS YearOfSalesOrderCreationDate_ERDAT, EXTRACT(MONTH FROM VBAK.ERDAT) AS MonthOfSalesOrderCreationDate_ERDAT, EXTRACT(WEEK FROM VBAK.ERDAT) AS WeekOfSalesOrderCreationDate_ERDAT, EXTRACT(DAY FROM VBAK.ERDAT) AS DayOfSalesOrderCreationDate_ERDAT, (VBAP.NETPR * VBAP.KWMENG) AS SalesOrderValueLineItem FROM `{{ project_id_src }}.{{ dataset_cdc_processed_s4 }}.vbak` AS VBAK INNER JOIN `{{ project_id_src }}.{{ dataset_cdc_processed_s4 }}.vbap` AS VBAP ON VBAK.VBELN = VBAP.VBELN AND VBAK.MANDT = VBAP.MANDT LEFT OUTER JOIN AGGVBEP ON VBAP.VBELN = AGGVBEP.VBELN AND VBAP.POSNR = AGGVBEP.POSNR AND VBAP.MANDT = AGGVBEP.MANDT LEFT OUTER JOIN AGGVBPAITEM ON VBAP.MANDT = AGGVBPAITEM.MANDT AND VBAP.VBELN = AGGVBPAITEM.VBELN AND VBAP.POSNR = AGGVBPAITEM.POSNR LEFT OUTER JOIN AGGVBPAHEADER ON VBAP.MANDT = AGGVBPAHEADER.MANDT AND VBAP.VBELN = AGGVBPAHEADER.VBELN AND (AGGVBPAHEADER.POSNR IS NULL OR AGGVBPAHEADER.POSNR = '000000') LEFT OUTER JOIN AGGPRCD_ELEMENTS ON CAST(AGGPRCD_ELEMENTS.KNUMV AS STRING) = VBAK.KNUMV AND CAST(AGGPRCD_ELEMENTS.KPOSN AS STRING) = VBAP.POSNR AND CAST(AGGPRCD_ELEMENTS.CLIENT AS STRING) = VBAP.MANDT LEFT JOIN TCURX AS tcurx_VBAK ON VBAK.WAERK = tcurx_VBAK.CURRKEY LEFT JOIN TCURX AS tcurx_VBAP ON VBAP.WAERK = tcurx_VBAP.CURRKEY