Sue Taylor
asked on
SQL Help
I have an existing report that I want to add a calculated field that I can later filter. The report shows columns for "available", "qty_in_process" and "qty_for_production". I want to be able to sum these three fields, then only display them on the report if the total of these three fields is less than another field in the report called "inv_min". I'm not sure how to go about this and would love help.
Current SQL is as follows:
SELECT p21_view_inv_loc.item_id, p21_view_inv_mast.inv_mast _uid, p21_view_inv_mast.extended _desc, p21_view_inv_loc.purchase_ class,
p21_view_inv_loc.product_g roup_id, p21_view_inv_mast.weight, derivedtbl_1.available, derivedtbl_4.unit_size AS pallet_qty, p21_view_inv_loc.inv_min,
CASE purchase_class WHEN 'A' THEN 2 WHEN 'B' THEN 3 WHEN 'C' THEN 4 WHEN 'D' THEN 6 ELSE 0 END AS Multiplier,
p21_view_inv_mast.default_ purchase_d isc_group, p21_view_inv_loc.stockable , derivedtbl_2.qty_in_vessel , derivedtbl_3.order_quantit y,
p21_view_inv_loc.purchase_ discount_g roup, trend.trend_avg, trend.[3mth_avg], trend.[6mth_avg], trend.[12mth_avg], Excel_item.customer_part_n o AS excel_item,
p21_view_inv_loc.location_ id, pri_suppl.pri_supplier, p21_view_inv_loc_stock_sta tus_1.qty_ in_product ion, p21_view_inv_loc_stock_sta tus_1.qty_ for_proces s,
p21_view_inv_loc_stock_sta tus_1.loca tion_id AS Expr1, p21_view_inv_loc_stock_sta tus_1.qty_ for_produc tion, p21_view_inv_loc.qty_in_pr ocess
FROM p21_view_inv_loc INNER JOIN
p21_view_inv_mast ON p21_view_inv_loc.inv_mast_ uid = p21_view_inv_mast.inv_mast _uid INNER JOIN
(SELECT ([3mth_avg] + [6mth_avg] + [12mth_avg]) / 3 AS trend_avg, inv_mast_uid, item_id, [3mth_avg], [6mth_avg], [12mth_avg]
FROM alprfa_view_corp_use_avg) AS trend ON p21_view_inv_mast.inv_mast _uid = trend.inv_mast_uid INNER JOIN
p21_view_inv_loc_stock_sta tus AS p21_view_inv_loc_stock_sta tus_1 ON
p21_view_inv_mast.inv_mast _uid = p21_view_inv_loc_stock_sta tus_1.inv_ mast_uid LEFT OUTER JOIN
(SELECT p21_view_inventory_supplie r_x_loc.pr imary_supp lier, p21_view_inventory_supplie r.inv_mast _uid, p21_view_inventory_supplie r.item_id,
p21_view_inventory_supplie r.supplier _id AS pri_supplier
FROM p21_view_inventory_supplie r INNER JOIN
p21_view_inventory_supplie r_x_loc ON
p21_view_inventory_supplie r.inventor y_supplier _uid = p21_view_inventory_supplie r_x_loc.in ventory_su pplier_uid
WHERE (p21_view_inventory_suppli er_x_loc.l ocation_id = 101) AND (p21_view_inventory_suppli er_x_loc.p rimary_sup plier = 'Y')) AS pri_suppl ON
p21_view_inv_mast.inv_mast _uid = pri_suppl.inv_mast_uid LEFT OUTER JOIN
(SELECT customer_part_no, inv_mast_uid
FROM p21_view_job_price_line
WHERE (job_price_hdr_uid = 150) AND (row_status_flag = 704)) AS Excel_item ON
p21_view_inv_mast.inv_mast _uid = Excel_item.inv_mast_uid LEFT OUTER JOIN
(SELECT p21_view_item_uom.unit_of_ measure, p21_view_item_uom.unit_siz e, p21_view_item_uom.item_id, p21_view_inv_mast_1.inv_ma st_uid,
p21_view_inv_mast_1.item_i d AS Expr1
FROM p21_view_item_uom INNER JOIN
p21_view_inv_mast AS p21_view_inv_mast_1 ON p21_view_item_uom.inv_mast _uid = p21_view_inv_mast_1.inv_ma st_uid
WHERE (p21_view_item_uom.unit_of _measure = 'pallet')) AS derivedtbl_4 ON p21_view_inv_mast.inv_mast _uid = derivedtbl_4.inv_mast_uid LEFT OUTER JOIN
(SELECT inv_mast_uid, order_quantity
FROM p21_view_inv_loc AS p21_view_inv_loc_2
WHERE (location_id = 101)) AS derivedtbl_3 ON p21_view_inv_loc.inv_mast_ uid = derivedtbl_3.inv_mast_uid LEFT OUTER JOIN
(SELECT SUM(p21_view_vessel_receip ts_line.co ntainer_qt y_received ) - SUM(p21_view_vessel_receip ts_line.co ntainer_qt y_unloaded ) AS qty_in_vessel,
p21_view_po_line.inv_mast_ uid
FROM p21_view_vessel_receipts_l ine INNER JOIN
p21_view_po_line ON p21_view_vessel_receipts_l ine.po_lin e_uid = p21_view_po_line.po_line_u id
WHERE (p21_view_vessel_receipts_ line.row_s tatus_flag <> 976)
GROUP BY p21_view_po_line.inv_mast_ uid, p21_view_po_line.po_no, p21_view_po_line.qty_order ed, p21_view_vessel_receipts_l ine.contai ner_qty_re ceived,
p21_view_vessel_receipts_l ine.contai ner_qty_un loaded
HAVING (SUM(p21_view_vessel_recei pts_line.c ontainer_q ty_receive d) - SUM(p21_view_vessel_receip ts_line.co ntainer_qt y_unloaded ) > 0)) AS derivedtbl_2 ON
p21_view_inv_loc.inv_mast_ uid = derivedtbl_2.inv_mast_uid LEFT OUTER JOIN
(SELECT p21_view_inv_loc_1.item_id ,
SUM(p21_view_inv_loc_1.qty _on_hand - p21_view_inv_loc_1.qty_all ocated - p21_view_inv_loc_stock_sta tus.qty_no n_pickable - p21_view_inv_loc_stock_sta tus.qty_qu arantined)
AS available
FROM p21_view_inv_loc AS p21_view_inv_loc_1 INNER JOIN
p21_view_inv_loc_stock_sta tus ON p21_view_inv_loc_1.locatio n_id = p21_view_inv_loc_stock_sta tus.locati on_id AND
p21_view_inv_loc_1.inv_mas t_uid = p21_view_inv_loc_stock_sta tus.inv_ma st_uid
WHERE (p21_view_inv_loc_1.compan y_id = '1')
GROUP BY p21_view_inv_loc_1.item_id ) AS derivedtbl_1 ON p21_view_inv_loc.item_id = derivedtbl_1.item_id
WHERE (p21_view_inv_loc.location _id = 101) AND (p21_view_inv_loc.purchase _discount_ group LIKE '%DOM%') AND (p21_view_inv_loc_stock_st atus_1.loc ation_id = 101)
AND (p21_view_inv_loc.stockabl e = 'y')
C--Users-staylor-Desktop-Current-SQ.docx
Current SQL is as follows:
SELECT p21_view_inv_loc.item_id, p21_view_inv_mast.inv_mast
p21_view_inv_loc.product_g
CASE purchase_class WHEN 'A' THEN 2 WHEN 'B' THEN 3 WHEN 'C' THEN 4 WHEN 'D' THEN 6 ELSE 0 END AS Multiplier,
p21_view_inv_mast.default_
p21_view_inv_loc.purchase_
p21_view_inv_loc.location_
p21_view_inv_loc_stock_sta
FROM p21_view_inv_loc INNER JOIN
p21_view_inv_mast ON p21_view_inv_loc.inv_mast_
(SELECT ([3mth_avg] + [6mth_avg] + [12mth_avg]) / 3 AS trend_avg, inv_mast_uid, item_id, [3mth_avg], [6mth_avg], [12mth_avg]
FROM alprfa_view_corp_use_avg) AS trend ON p21_view_inv_mast.inv_mast
p21_view_inv_loc_stock_sta
p21_view_inv_mast.inv_mast
(SELECT p21_view_inventory_supplie
p21_view_inventory_supplie
FROM p21_view_inventory_supplie
p21_view_inventory_supplie
p21_view_inventory_supplie
WHERE (p21_view_inventory_suppli
p21_view_inv_mast.inv_mast
(SELECT customer_part_no, inv_mast_uid
FROM p21_view_job_price_line
WHERE (job_price_hdr_uid = 150) AND (row_status_flag = 704)) AS Excel_item ON
p21_view_inv_mast.inv_mast
(SELECT p21_view_item_uom.unit_of_
p21_view_inv_mast_1.item_i
FROM p21_view_item_uom INNER JOIN
p21_view_inv_mast AS p21_view_inv_mast_1 ON p21_view_item_uom.inv_mast
WHERE (p21_view_item_uom.unit_of
(SELECT inv_mast_uid, order_quantity
FROM p21_view_inv_loc AS p21_view_inv_loc_2
WHERE (location_id = 101)) AS derivedtbl_3 ON p21_view_inv_loc.inv_mast_
(SELECT SUM(p21_view_vessel_receip
p21_view_po_line.inv_mast_
FROM p21_view_vessel_receipts_l
p21_view_po_line ON p21_view_vessel_receipts_l
WHERE (p21_view_vessel_receipts_
GROUP BY p21_view_po_line.inv_mast_
p21_view_vessel_receipts_l
HAVING (SUM(p21_view_vessel_recei
p21_view_inv_loc.inv_mast_
(SELECT p21_view_inv_loc_1.item_id
SUM(p21_view_inv_loc_1.qty
AS available
FROM p21_view_inv_loc AS p21_view_inv_loc_1 INNER JOIN
p21_view_inv_loc_stock_sta
p21_view_inv_loc_1.inv_mas
WHERE (p21_view_inv_loc_1.compan
GROUP BY p21_view_inv_loc_1.item_id
WHERE (p21_view_inv_loc.location
AND (p21_view_inv_loc.stockabl
C--Users-staylor-Desktop-Current-SQ.docx
ASKER
[SELECT p21_view_inv_loc.item_id, p21_view_inv_mast.inv_mast _uid, p21_view_inv_mast.extended _desc, p21_view_inv_loc.purchase_ class,
p21_view_inv_loc.product_g roup_id, p21_view_inv_mast.weight, derivedtbl_1.available, derivedtbl_4.unit_size AS pallet_qty, p21_view_inv_loc.inv_min,
CASE purchase_class WHEN 'A' THEN 2 WHEN 'B' THEN 3 WHEN 'C' THEN 4 WHEN 'D' THEN 6 ELSE 0 END AS Multiplier,
p21_view_inv_mast.default_ purchase_d isc_group, p21_view_inv_loc.stockable , derivedtbl_2.qty_in_vessel , derivedtbl_3.order_quantit y,
p21_view_inv_loc.purchase_ discount_g roup, trend.trend_avg, trend.[3mth_avg], trend.[6mth_avg], trend.[12mth_avg], Excel_item.customer_part_n o AS excel_item,
p21_view_inv_loc.location_ id, pri_suppl.pri_supplier, p21_view_inv_loc_stock_sta tus_1.qty_ in_product ion, p21_view_inv_loc_stock_sta tus_1.qty_ for_proces s,
p21_view_inv_loc_stock_sta tus_1.loca tion_id AS Expr1, p21_view_inv_loc_stock_sta tus_1.qty_ for_produc tion, p21_view_inv_loc.qty_in_pr ocess
FROM p21_view_inv_loc INNER JOIN
p21_view_inv_mast ON p21_view_inv_loc.inv_mast_ uid = p21_view_inv_mast.inv_mast _uid INNER JOIN
(SELECT ([3mth_avg] + [6mth_avg] + [12mth_avg]) / 3 AS trend_avg, inv_mast_uid, item_id, [3mth_avg], [6mth_avg], [12mth_avg]
FROM alprfa_view_corp_use_avg) AS trend ON p21_view_inv_mast.inv_mast _uid = trend.inv_mast_uid INNER JOIN
p21_view_inv_loc_stock_sta tus AS p21_view_inv_loc_stock_sta tus_1 ON
p21_view_inv_mast.inv_mast _uid = p21_view_inv_loc_stock_sta tus_1.inv_ mast_uid LEFT OUTER JOIN
(SELECT p21_view_inventory_supplie r_x_loc.pr imary_supp lier, p21_view_inventory_supplie r.inv_mast _uid, p21_view_inventory_supplie r.item_id,
p21_view_inventory_supplie r.supplier _id AS pri_supplier
FROM p21_view_inventory_supplie r INNER JOIN
p21_view_inventory_supplie r_x_loc ON
p21_view_inventory_supplie r.inventor y_supplier _uid = p21_view_inventory_supplie r_x_loc.in ventory_su pplier_uid
WHERE (p21_view_inventory_suppli er_x_loc.l ocation_id = 101) AND (p21_view_inventory_suppli er_x_loc.p rimary_sup plier = 'Y')) AS pri_suppl ON
p21_view_inv_mast.inv_mast _uid = pri_suppl.inv_mast_uid LEFT OUTER JOIN
(SELECT customer_part_no, inv_mast_uid
FROM p21_view_job_price_line
WHERE (job_price_hdr_uid = 150) AND (row_status_flag = 704)) AS Excel_item ON
p21_view_inv_mast.inv_mast _uid = Excel_item.inv_mast_uid LEFT OUTER JOIN
(SELECT p21_view_item_uom.unit_of_ measure, p21_view_item_uom.unit_siz e, p21_view_item_uom.item_id, p21_view_inv_mast_1.inv_ma st_uid,
p21_view_inv_mast_1.item_i d AS Expr1
FROM p21_view_item_uom INNER JOIN
p21_view_inv_mast AS p21_view_inv_mast_1 ON p21_view_item_uom.inv_mast _uid = p21_view_inv_mast_1.inv_ma st_uid
WHERE (p21_view_item_uom.unit_of _measure = 'pallet')) AS derivedtbl_4 ON p21_view_inv_mast.inv_mast _uid = derivedtbl_4.inv_mast_uid LEFT OUTER JOIN
(SELECT inv_mast_uid, order_quantity
FROM p21_view_inv_loc AS p21_view_inv_loc_2
WHERE (location_id = 101)) AS derivedtbl_3 ON p21_view_inv_loc.inv_mast_ uid = derivedtbl_3.inv_mast_uid LEFT OUTER JOIN
(SELECT SUM(p21_view_vessel_receip ts_line.co ntainer_qt y_received ) - SUM(p21_view_vessel_receip ts_line.co ntainer_qt y_unloaded ) AS qty_in_vessel,
p21_view_po_line.inv_mast_ uid
FROM p21_view_vessel_receipts_l ine INNER JOIN
p21_view_po_line ON p21_view_vessel_receipts_l ine.po_lin e_uid = p21_view_po_line.po_line_u id
WHERE (p21_view_vessel_receipts_ line.row_s tatus_flag <> 976)
GROUP BY p21_view_po_line.inv_mast_ uid, p21_view_po_line.po_no, p21_view_po_line.qty_order ed, p21_view_vessel_receipts_l ine.contai ner_qty_re ceived,
p21_view_vessel_receipts_l ine.contai ner_qty_un loaded
HAVING (SUM(p21_view_vessel_recei pts_line.c ontainer_q ty_receive d) - SUM(p21_view_vessel_receip ts_line.co ntainer_qt y_unloaded ) > 0)) AS derivedtbl_2 ON
p21_view_inv_loc.inv_mast_ uid = derivedtbl_2.inv_mast_uid LEFT OUTER JOIN
(SELECT p21_view_inv_loc_1.item_id ,
SUM(p21_view_inv_loc_1.qty _on_hand - p21_view_inv_loc_1.qty_all ocated - p21_view_inv_loc_stock_sta tus.qty_no n_pickable - p21_view_inv_loc_stock_sta tus.qty_qu arantined)
AS available
FROM p21_view_inv_loc AS p21_view_inv_loc_1 INNER JOIN
p21_view_inv_loc_stock_sta tus ON p21_view_inv_loc_1.locatio n_id = p21_view_inv_loc_stock_sta tus.locati on_id AND
p21_view_inv_loc_1.inv_mas t_uid = p21_view_inv_loc_stock_sta tus.inv_ma st_uid
WHERE (p21_view_inv_loc_1.compan y_id = '1')
GROUP BY p21_view_inv_loc_1.item_id ) AS derivedtbl_1 ON p21_view_inv_loc.item_id = derivedtbl_1.item_id
WHERE (p21_view_inv_loc.location _id = 101) AND (p21_view_inv_loc.purchase _discount_ group LIKE '%DOM%') AND (p21_view_inv_loc_stock_st atus_1.loc ation_id = 101)
AND (p21_view_inv_loc.stockabl e = 'y')
][/code]
p21_view_inv_loc.product_g
CASE purchase_class WHEN 'A' THEN 2 WHEN 'B' THEN 3 WHEN 'C' THEN 4 WHEN 'D' THEN 6 ELSE 0 END AS Multiplier,
p21_view_inv_mast.default_
p21_view_inv_loc.purchase_
p21_view_inv_loc.location_
p21_view_inv_loc_stock_sta
FROM p21_view_inv_loc INNER JOIN
p21_view_inv_mast ON p21_view_inv_loc.inv_mast_
(SELECT ([3mth_avg] + [6mth_avg] + [12mth_avg]) / 3 AS trend_avg, inv_mast_uid, item_id, [3mth_avg], [6mth_avg], [12mth_avg]
FROM alprfa_view_corp_use_avg) AS trend ON p21_view_inv_mast.inv_mast
p21_view_inv_loc_stock_sta
p21_view_inv_mast.inv_mast
(SELECT p21_view_inventory_supplie
p21_view_inventory_supplie
FROM p21_view_inventory_supplie
p21_view_inventory_supplie
p21_view_inventory_supplie
WHERE (p21_view_inventory_suppli
p21_view_inv_mast.inv_mast
(SELECT customer_part_no, inv_mast_uid
FROM p21_view_job_price_line
WHERE (job_price_hdr_uid = 150) AND (row_status_flag = 704)) AS Excel_item ON
p21_view_inv_mast.inv_mast
(SELECT p21_view_item_uom.unit_of_
p21_view_inv_mast_1.item_i
FROM p21_view_item_uom INNER JOIN
p21_view_inv_mast AS p21_view_inv_mast_1 ON p21_view_item_uom.inv_mast
WHERE (p21_view_item_uom.unit_of
(SELECT inv_mast_uid, order_quantity
FROM p21_view_inv_loc AS p21_view_inv_loc_2
WHERE (location_id = 101)) AS derivedtbl_3 ON p21_view_inv_loc.inv_mast_
(SELECT SUM(p21_view_vessel_receip
p21_view_po_line.inv_mast_
FROM p21_view_vessel_receipts_l
p21_view_po_line ON p21_view_vessel_receipts_l
WHERE (p21_view_vessel_receipts_
GROUP BY p21_view_po_line.inv_mast_
p21_view_vessel_receipts_l
HAVING (SUM(p21_view_vessel_recei
p21_view_inv_loc.inv_mast_
(SELECT p21_view_inv_loc_1.item_id
SUM(p21_view_inv_loc_1.qty
AS available
FROM p21_view_inv_loc AS p21_view_inv_loc_1 INNER JOIN
p21_view_inv_loc_stock_sta
p21_view_inv_loc_1.inv_mas
WHERE (p21_view_inv_loc_1.compan
GROUP BY p21_view_inv_loc_1.item_id
WHERE (p21_view_inv_loc.location
AND (p21_view_inv_loc.stockabl
][/code]
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER
Thank you so much!
Also there's a wompload of T-SQL here, so if you can edit this down to only what's relevant to the question that would help.