ecc/StockInHand.sql (144 lines of code) (raw):
---CORTEX-CUSTOMER: Stock In Hand is the aggregated unrestricted stock Qty
---from various sources like stock at Distribution centers, at Vendor location,
---at Customer Location and special stock at Vendor in Consignment.
## CORTEX-CUSTOMER: We are transposing MARD to achieve different stock reasons in a single column
SELECT
mard.MANDT AS Client_MANDT,
mard.MATNR AS ArticleNumber_MATNR,
mard.WERKS AS Site_WERKS,
mard.LGORT AS StorageLocation_LGORT,
NULL AS BatchNumber_CHARG,
NULL AS SpecialStockIndicator_SOBKZ,
NULL AS SDDocumentNumber_VBELN,
NULL AS SDDocumentItemNumber_POSNR,
NULL AS VendorAccountNumber_LIFNR,
NULL AS CustomerNumber_KUNNR,
SPLIT(Qty, '@') [OFFSET(0)] AS Qty,
SPLIT(Qty, '@') [OFFSET(1)] AS StockType
FROM
`{{ project_id_src }}.{{ dataset_cdc_processed_ecc }}.mard` AS mard,
UNNEST(
[
CAST(LABST AS STRING) || '@A-Unrestricted use',
CAST(UMLME AS STRING) || '@F-Stock in transfer',
CAST(INSME AS STRING) || '@B-Quality inspection',
CAST(EINME AS STRING) || '@E-Stock of All Restricted Batches',
CAST(SPEME AS STRING) || '@D-Blocked Stock',
CAST(RETME AS STRING) || '@C Blocked stock returns'
]
) AS Qty
WHERE Qty IS NOT NULL AND mard.MANDT = '{{ mandt }}'
UNION ALL
SELECT
mska.MANDT AS Client_MANDT,
mska.MATNR AS ArticleNumber_MATNR,
mska.WERKS AS Site_WERKS,
mska.LGORT AS StorageLocation_LGORT,
CAST(mska.CHARG AS STRING) AS BatchNumber_CHARG,
mska.SOBKZ AS SpecialStockIndicator_SOBKZ,
mska.VBELN AS SDDocumentNumber_VBELN,
mska.POSNR AS SDDocumentItemNumber_POSNR,
NULL AS VendorAccountNumber_LIFNR,
NULL AS CustomerNumber_KUNNR,
SPLIT(Qty, '@') [OFFSET(0)] AS Qty,
SPLIT(Qty, '@') [OFFSET(1)] AS StockType
FROM
`{{ project_id_src }}.{{ dataset_cdc_processed_ecc }}.mska` AS mska,
UNNEST(
[
KALAB || '@A-Unrestricted use',
KAINS || '@B-Quality inspection',
KASPE || '@D-Blocked Stock'
]
) AS Qty
WHERE Qty IS NOT NULL AND mska.MANDT = '{{ mandt }}'
UNION ALL
SELECT
msfd.MANDT AS Client_MANDT,
msfd.MATNR AS ArticleNumber_MATNR,
msfd.WERKS AS Site_WERKS,
NULL AS StorageLocation_LGORT,
CAST(msfd.CHARG AS STRING) AS BatchNumber_CHARG,
msfd.SOBKZ AS SpecialStockIndicator_SOBKZ,
msfd.VBELN AS SDDocumentNumber_VBELN,
msfd.POSNR AS SDDocumentItemNumber_POSNR,
msfd.LIFNR AS VendorAccountNumber_LIFNR,
NULL AS CustomerNumber_KUNNR,
SPLIT(Qty, '@') [OFFSET(0)] AS Qty,
SPLIT(Qty, '@') [OFFSET(1)] AS StockType
FROM
`{{ project_id_src }}.{{ dataset_cdc_processed_ecc }}.msfd` AS msfd,
UNNEST(
[
FDLAB || '@A-Unrestricted use',
FDINS || '@B-Quality inspection',
FDEIN || '@E-Stock of All Restricted Batches'
]
) AS Qty
WHERE Qty IS NOT NULL AND msfd.MANDT = '{{ mandt }}'
UNION ALL
SELECT
mslb.MANDT AS Client_MANDT,
mslb.MATNR AS ArticleNumber_MATNR,
mslb.WERKS AS Site_WERKS,
NULL AS StorageLocation_LGORT,
CAST(mslb.CHARG AS STRING) AS BatchNumber_CHARG,
mslb.SOBKZ AS SpecialStockIndicator_SOBKZ,
NULL AS SDDocumentNumber_VBELN,
NULL AS SDDocumentItemNumber_POSNR,
mslb.LIFNR AS VendorAccountNumber_LIFNR,
NULL AS CustomerNumber_KUNNR,
SPLIT(Qty, '@') [OFFSET(0)] AS Qty,
SPLIT(Qty, '@') [OFFSET(1)] AS StockType
FROM
`{{ project_id_src }}.{{ dataset_cdc_processed_ecc }}.mslb` AS mslb,
UNNEST(
[
LBLAB || '@A-Unrestricted use',
LBINS || '@B-Quality inspection'
]
) AS Qty
WHERE Qty IS NOT NULL AND mslb.MANDT = '{{ mandt }}'
UNION ALL
SELECT
msku.MANDT AS Client_MANDT,
msku.MATNR AS ArticleNumber_MATNR,
msku.WERKS AS Site_WERKS,
NULL AS StorageLocation_LGORT,
CAST(msku.CHARG AS STRING) AS BatchNumber_CHARG,
msku.SOBKZ AS SpecialStockIndicator_SOBKZ,
NULL AS SDDocumentNumber_VBELN,
NULL AS SDDocumentItemNumber_POSNR,
NULL AS VendorAccountNumber_LIFNR,
msku.KUNNR AS CustomerNumber_KUNNR,
SPLIT(Qty, '@') [OFFSET(0)] AS Qty,
SPLIT(Qty, '@') [OFFSET(1)] AS StockType
FROM
`{{ project_id_src }}.{{ dataset_cdc_processed_ecc }}.msku` AS msku,
UNNEST(
[
KULAB || '@A-Unrestricted use'
]
) AS Qty
WHERE Qty IS NOT NULL AND msku.MANDT = '{{ mandt }}'
UNION ALL
SELECT
mkol.MANDT AS Client_MANDT,
mkol.MATNR AS ArticleNumber_MATNR,
mkol.WERKS AS Site_WERKS,
mkol.LGORT AS StorageLocation_LGORT,
CAST(mkol.CHARG AS STRING) AS BatchNumber_CHARG,
mkol.SOBKZ AS SpecialStockIndicator_SOBKZ,
NULL AS SDDocumentNumber_VBELN,
NULL AS SDDocumentItemNumber_POSNR,
mkol.LIFNR AS VendorAccountNumber_LIFNR,
NULL AS CustomerNumber_KUNNR,
SPLIT(Qty, '@') [OFFSET(0)] AS Qty,
SPLIT(Qty, '@') [OFFSET(1)] AS StockType
FROM
`{{ project_id_src }}.{{ dataset_cdc_processed_ecc }}.mkol` AS mkol,
UNNEST(
[
SLABS || '@A-Unrestricted use',
SINSM || '@B-Quality inspection',
SSPEM || '@D-Blocked Stock'
]
) AS Qty
WHERE Qty IS NOT NULL AND mkol.MANDT = '{{ mandt }}'