I am trying to write a simple query to get the MAX DEMAND_DATE for each INV_CART_ID. Here is my existing query:
SELECT BUSINESS_UNIT, INV_CART_ID, INV_ITEM_ID, CART_COUNT_QTY, DEMAND_DATE
FROM PS_CART_CT_INF_INV A
WHERE A.INV_ITEM_ID = 1
AND A.BUSINESS_UNIT = '11MMS'
AND A.CART_COUNT_QTY <> 0
ORDER BY DEMAND_DATE DESC
Current Output:
Desired Output:
BUSINESS_UNIT INV_CART_ID INV_ITEM_ID CART_COUNT_QTY DEMAND_DATE
11MMS 405 1 5.0000 2018-05-29
11MMS OUTPT_INFUSION 1 4.0000 2018-05-29
11MMS 938 1 15.0000 2018-05-31
11MMS 286 1 1.0000 2018-05-07
11MMS 708 1 4.0000 2018-04-05
This is what I have tried doing so far:
SELECT MAX(DEMAND_DATE) AS DEMAND_DATE, INV_CART_ID, BUSINESS_UNIT,
INV_ITEM_ID, CART_COUNT_QTY
FROM PS_CART_CT_INF_INV A
WHERE A.INV_ITEM_ID = 1
AND A.BUSINESS_UNIT = '11MMS'
AND A.CART_COUNT_QTY <> 0
AND A.DEMAND_DATE IN (SELECT MAX (DEMAND_DATE) FROM PS_CART_CT_INF_INV B
WHERE A.INV_ITEM_ID = B.INV_ITEM_ID GROUP BY INV_CART_ID)
GROUP BY INV_CART_ID, BUSINESS_UNIT, INV_ITEM_ID, CART_COUNT_QTY
However it doesn't return all INV_CART_ID #'s and is not retrieving the correct row (wrong DEMAND_DATE):

