select - MySQL: Selecting distinct with aggregate functions -
i'm having problem selecting distinct order id orderitems table.
my orderitems table contains: orderid | itemid | orderedquantity | instockquantity | backorderquantity | isbackorderofid | id
.
orderedquantity
total ordered amount, instockquantity
quantity available @ time of purchase , backorderquantity
rest. isbackorderofid
correlates id
column when order item backorder of order item.
my query trying select distinct orderid
of entries backorderquantity
< sum(instockquantity)
isbackorderofid
= id
. result in list if distinct order ids have remaining backorders shipped.
test data:
orderid | itemid | orderedquantity | instockquantity | backorderquantity | isbackorderofid | id 1 | 114 | 10 | 6 | 4 | 0 | 23 1 | 255 | 4 | 3 | 1 | 0 | 24 2 | 114 | 3 | 3 | 0 | 23 | 25
query:
select items1.* orderitems items1 left bring together orderitems items2 on items2.isbackorderofid = items1.id items1.backorderquantity > '0' grouping items2.isbackorderofid having sum(items2.instockquantity) < items1.backorderquantity or sum(items2.instockquantity) null`
this results in both first , sec row has same orderid
. can't utilize select distinct because of utilize of aggregate functions.
any help appreciated.
select items1.orderid orderitems items1 left bring together orderitems items2 on items2.isbackorderofid = items1.id grouping items1.orderid having coalesce(sum(items2.instockquantity), 0) < sum(items1.backorderquantity)
mysql select distinct
No comments:
Post a Comment