fix query

feature/reliability_stat
Cizz22 4 months ago
parent 5960070d13
commit a650b72c19

@ -33,7 +33,8 @@ async def get_all(db_session: DbSession):
h.num as pr_number, h.num as pr_number,
h.issue_date as pr_issue_date, h.issue_date as pr_issue_date,
h.status as pr_status, h.status as pr_status,
pl.qty_ordered as pr_qty_ordered pl.qty_ordered as pr_qty_ordered,
pl.description
FROM public.maximo_sparepart_pr_po h FROM public.maximo_sparepart_pr_po h
JOIN public.maximo_sparepart_pr_po_line pl ON h.num = pl.num JOIN public.maximo_sparepart_pr_po_line pl ON h.num = pl.num
WHERE h.type = 'PR' WHERE h.type = 'PR'
@ -43,46 +44,33 @@ async def get_all(db_session: DbSession):
) )
SELECT DISTINCT ON (pr.item_num) SELECT DISTINCT ON (pr.item_num)
pr.item_num, pr.item_num,
(SELECT description FROM public.maximo_sparepart_pr_po_line WHERE item_num = pr.item_num LIMIT 1) as description, pr.description,
COALESCE((SELECT curbaltotal FROM public.maximo_inventory WHERE itemnum = pr.item_num), 0) as current_balance_total, COALESCE(i.curbaltotal, 0) as current_balance_total,
pr.pr_number, pr.pr_number,
pr.pr_issue_date, pr.pr_issue_date,
pr.pr_qty_ordered, pr.pr_qty_ordered,
CASE CASE
WHEN EXISTS ( WHEN po.po_number IS NOT NULL THEN 'YES'
SELECT 1 FROM public.maximo_sparepart_pr_po
WHERE type = 'PO' AND num = pr.pr_number
) THEN 'YES'
ELSE 'NO' ELSE 'NO'
END as po_exists, END as po_exists,
COALESCE(( COALESCE(po.qty_received, 0) as po_qty_received,
SELECT pl.qty_received COALESCE(po.qty_ordered, 0) as po_qty_ordered,
FROM public.maximo_sparepart_pr_po h COALESCE(po.estimated_arrival_date, '') as po_estimated_arrival_date
JOIN public.maximo_sparepart_pr_po_line pl ON h.num = pl.num FROM latest_prs pr
WHERE h.type = 'PO' LEFT JOIN public.maximo_inventory i ON pr.item_num = i.itemnum
AND h.num = pr.pr_number LEFT JOIN LATERAL (
AND pl.item_num = pr.item_num SELECT
LIMIT 1 h.num as po_number,
), 0) as po_qty_received, pl.qty_received,
COALESCE(( pl.qty_ordered,
SELECT pl.qty_ordered h.estimated_arrival_date
FROM public.maximo_sparepart_pr_po h
JOIN public.maximo_sparepart_pr_po_line pl ON h.num = pl.num
WHERE h.type = 'PO'
AND h.num = pr.pr_number
AND pl.item_num = pr.item_num
LIMIT 1
), 0) as po_qty_ordered,
COALESCE((
SELECT h.estimated_arrival_date
FROM public.maximo_sparepart_pr_po h FROM public.maximo_sparepart_pr_po h
JOIN public.maximo_sparepart_pr_po_line pl ON h.num = pl.num JOIN public.maximo_sparepart_pr_po_line pl ON h.num = pl.num
WHERE h.type = 'PO' WHERE h.type = 'PO'
AND h.num = pr.pr_number AND h.num = pr.pr_number
AND pl.item_num = pr.item_num AND pl.item_num = pr.item_num
LIMIT 1 LIMIT 1
), '') as po_estimated_arrival_date ) po ON true
FROM latest_prs pr
ORDER BY pr.item_num; ORDER BY pr.item_num;
""") """)

Loading…
Cancel
Save