1
當遇到一個常見問題時,當我得到兩個結果的每個條件,我需要消除一個表。SQL加入後消除一個結果
例如,我現在試圖找出我有什麼樣的產品代碼庫存,以及如果我有什麼訂單,什麼時候到期,我只想看到每個產品代碼,並且它工作的很好。我只是按順序顯示數量,但現在我想要到期日我必須做一個左連接。現在我得到每個產品代碼的兩個結果。我得到一個顯示它有什麼庫存和另一個,如果有什麼訂單和什麼時候到期。我只想看到股票,如果沒有訂單和股票和訂單作爲一條線,如果有訂購的東西,而不是兩個分開。
DECLARE @cat VARCHAR(150)
SET @cat = 'crumb' --Put your search string in the single speech marks
SELECT category_treeview_node.ctn_description AS
[Product Category],
variant_detail.vad_variant_code AS [Variant Code],
variant_detail.vad_description AS
[Variant Description],
Sum(variant_transaction_header.vth_current_quantity) AS [Physical Stock],
variant_stock_quantity.vasq_free_stock_quantity AS [Free Stock],
variant_stock_location.vsl_stock_on_purchase_order AS [Stock on order],
purchase_order_header.poh_required_date AS [Due Date]
FROM variant_stock_quantity
INNER JOIN (variant_detail
INNER JOIN variant_category
ON variant_detail.vad_id =
variant_category.vac_vad_id
INNER JOIN category_treeview_node
ON category_treeview_node.ctn_id =
variant_category.vac_ctn_id)
ON variant_stock_quantity.vasq_vad_id = variant_detail.vad_id
INNER JOIN variant_stock_location
ON variant_detail.vad_id = variant_stock_location.vsl_vad_id
LEFT JOIN (variant_transaction_header_total
INNER JOIN variant_transaction_header
ON variant_transaction_header_total.vtht_vth_id =
variant_transaction_header.vth_id)
ON variant_detail.vad_id = variant_transaction_header.vth_vad_id
LEFT JOIN purchase_order_line
ON purchase_order_line.pol_id =
variant_transaction_header.vth_pol_id
AND variant_detail.vad_id = purchase_order_line.pol_vad_id
LEFT JOIN purchase_order_header
ON purchase_order_header.poh_id = purchase_order_line.pol_poh_id
WHERE category_treeview_node.ctn_description = @cat
GROUP BY category_treeview_node.ctn_description,
variant_detail.vad_variant_code,
variant_detail.vad_description,
variant_stock_quantity.vasq_free_stock_quantity,
variant_stock_location.vsl_stock_on_purchase_order,
purchase_order_header.poh_required_date
HAVING variant_stock_quantity.vasq_free_stock_quantity >= 0
即時得到一個結果,顯示實際庫存,免費的股票,什麼在秩序和零點的截止日期,然後一個結果,顯示沒有實際庫存,免費的股票,什麼訂單和到期日期。
任何幫助表示讚賞。
請爲您的RDBMS(SQL Server?)添加標籤。 – Mat 2013-02-10 10:52:24
請顯示實際產量和預期產量。這可以讓你更容易看到你想要做什麼。 – Dukeling 2013-02-10 10:52:54
代碼項目的PHY釋放的訂單到期 NB03 \t麪包屑346.0000 \t 306.0000 \t 80.0000 \t NB03 \t麪包屑0.0000 \t 306.0000 \t 80.0000 \t 15/02/2013 – user2058568 2013-02-10 10:59:41