Darstellung
Stock Head
SQL-Vorlage aus der reybex-Standardbibliothek – für BAS23-Exportjobs und Ad-hoc-Tests.
Abfrage
sql
SELECT
stockHead.id AS stockHeadId,
stockItem.last_updated AS stockItemLastUpdated,
stockItem.id AS stockItemId,
material.gtin AS materialGtin,
invDocType.code AS invDocTypeCode,
stockHead.doc_date AS stockHeadDocDate,
stockItem.description AS stockItemDescription,
stockItem.date_created AS stockItemCreatedDate,
createdByUser.surname AS createdBySurname,
stockItem.is_canceled AS isCanceled,
material.mat_code AS materialCode,
material.name AS materialName,
warehouse.name AS warehouseName,
variant.name AS variantName,
variant.id AS variantId,
variant.is_not_stockable AS isNotStockable,
variant.sku AS variantSku,
variant.name AS variantNameDuplicate,
variant.ean_code AS variantEanCode,
variant.asin AS variantAsin,
CASE
WHEN stockItem.total < 0 THEN -stockItem.entered_quantity
ELSE stockItem.entered_quantity
END AS enteredQuantityAdjusted,
CASE
WHEN salesCustomer.id IS NULL THEN purchaseCustomer.name
ELSE salesCustomer.name
END AS customerName,
CASE
WHEN salesCustomer.id IS NULL THEN purchaseCustomer.customer_no
ELSE salesCustomer.customer_no
END AS customerNo,
CASE
WHEN salesCustomer.id IS NULL THEN purchaseCustomer.id
ELSE salesCustomer.id
END AS customerId,
stockItem.itemnum AS itemNumber,
CASE
WHEN stockItem.current_warehouse_stock IS NOT NULL THEN stockItem.current_warehouse_stock + stockItem.avail
ELSE NULL
END AS warehouseStockAfter,
CASE
WHEN stockItem.current_line_stock IS NOT NULL THEN stockItem.current_line_stock + stockItem.avail
ELSE NULL
END AS lineStockAfter,
material.is_set AS materialIsSet,
enteredUnit.name AS enteredUnitName,
stockItem.total AS stockItemTotal,
warehouseUnit.name AS warehouseUnitName,
salesDocType.name AS salesDocTypeName,
salesHead.doc_number AS salesDocNumber,
salesHead.id AS salesHeadId,
stockItem.license_key AS licenseKey,
stockPlace.stockplace_code AS stockPlaceCode,
stockItem.batchnum AS batchNumber,
stockItem.nve AS nve,
stockItem.expiry_date AS expiryDate,
purchaseDocType.name AS purDocTypeName,
purchaseHead.doc_number AS purDocNumber,
purchaseHead.id AS purHeadId,
material.id AS materialId,
stockHead.del_note_doc_number AS deliveryNoteNumber,
stockHead.post_date AS stockHeadPostDate,
vendorCustomer.name AS vendorName,
stockHead.doc_number AS stockHeadDocNumber,
stockHead.container_number AS containerNumber,
stockHead.is_parked AS isParked,
stockItem.is_statistics AS isStatistics,
stockItem.ts AS timestamp,
stockItem.attribute_code AS attributeCode,
stockHead.description AS stockHeadDescription,
CASE
WHEN purchaseItem.id IS NOT NULL THEN purchaseItem.is_verification_manually_closed
ELSE stockItem.is_verification_manually_closed
END AS isVerificationManuallyClosed,
stockMoveType.name AS stockMoveTypeName,
pickListHead.doc_number AS pickListDocNumber,
linkedSalesHead.doc_number AS linkedSalesDocNumber,
linkedSalesCustomer.name AS linkedSalesCustomerName,
warehouse.id AS warehouseId,
stockPlace.name AS stockPlaceName,
'' AS emptyColumn,
material.pur_price AS materialPurPrice,
material.sales_price AS materialSalesPrice,
material.sales_price_gross AS materialSalesPriceGross,
material.asin AS materialAsin,
material.rrp AS materialRrp,
brand.name AS brandName,
stockItem.reserved AS reservedQty,
stockItem.avail AS availableQty,
stockItem.blocked AS blockedQty,
CASE
WHEN materialTypeTrans.name IS NULL THEN materialType.name
ELSE materialTypeTrans.name
END AS materialTypeName,
prodOrder.id AS prodOrderId,
prodOrder.doc_number AS prodOrderNumber
FROM
stock_item stockItem
INNER JOIN stock_head stockHead ON stockItem.stock_head_id = stockHead.id
LEFT JOIN material material ON stockItem.material_id = material.id
LEFT JOIN ltt_warehouse warehouse ON stockItem.warehouse_id = warehouse.id
LEFT JOIN ltt_unit warehouseUnit ON material.warehouse_unit_id = warehouseUnit.id
LEFT JOIN ltt_brand brand ON material.brand_id = brand.id
LEFT JOIN material_variant variant ON material.id = variant.material_id
AND 17954 = variant.tenant_id
AND variant.is_delete = 0
AND (
stockItem.variant_code IS NULL
OR variant.variant_code = stockItem.variant_code
OR (variant.is_not_stockable = 1 AND INSTR(variant.variant_code, stockItem.variant_code) > 0)
)
LEFT JOIN sales_item salesItem ON stockItem.sales_item_id = salesItem.id
LEFT JOIN ltt_unit enteredUnit ON stockItem.entered_unit_id = enteredUnit.id
LEFT JOIN user createdByUser ON stockItem.created_by_id = createdByUser.id
LEFT JOIN sales_head salesHead ON salesItem.sales_head_id = salesHead.id
LEFT JOIN customer salesCustomer ON salesHead.customer_id = salesCustomer.id
LEFT JOIN ltt_sales_doc_type salesDocType ON salesHead.doc_type_id = salesDocType.id AND salesHead.tenant_id = salesDocType.tenant_id
LEFT JOIN pur_item purchaseItem ON stockItem.pur_item_id = purchaseItem.id
LEFT JOIN pur_head purchaseHead ON purchaseItem.pur_head_id = purchaseHead.id AND purchaseHead.tenant_id = purchaseItem.tenant_id
LEFT JOIN customer purchaseCustomer ON purchaseHead.vendor_id = purchaseCustomer.id AND purchaseCustomer.tenant_id = purchaseItem.tenant_id
LEFT JOIN ltt_stockplace stockPlace ON stockItem.stockplace_id = stockPlace.id
LEFT JOIN ltt_pur_doc_type purchaseDocType ON purchaseHead.pur_doc_type_id = purchaseDocType.id
LEFT JOIN ltt_inv_doc_type invDocType ON stockHead.inv_doc_type_id = invDocType.id
LEFT JOIN ltt_stock_move_typ stockMoveType ON stockItem.stock_move_type_id = stockMoveType.id
LEFT JOIN pick_list_item pickListItem ON stockItem.pick_list_item_id = pickListItem.id
LEFT JOIN pick_list_head pickListHead ON pickListItem.pick_list_head_id = pickListHead.id
LEFT JOIN sales_head linkedSalesHead ON pickListItem.sales_head_id = linkedSalesHead.id
LEFT JOIN customer linkedSalesCustomer ON linkedSalesHead.customer_id = linkedSalesCustomer.id
LEFT JOIN customer vendorCustomer ON stockHead.vendor_id = vendorCustomer.id
LEFT JOIN ltt_material_type materialType ON material.material_type_id = materialType.id
LEFT JOIN ltt_material_type_trans materialTypeTrans ON materialType.id = materialTypeTrans.material_type_id
AND 17954 = materialTypeTrans.tenant_id AND materialTypeTrans.language = 'en'
LEFT JOIN prod_order_component prodOrderComponent ON stockItem.prod_order_component_id = prodOrderComponent.id
LEFT JOIN prod_order prodOrder ON stockItem.prod_order_id = prodOrder.id
WHERE
17954 = stockItem.tenant_id
AND stockItem.reserved = 0
GROUP BY
stockItem.id
ORDER BY
stockItem.id DESC;