【问题标题】:mysql - Latest record with matching value and having the latest be positivemysql - 具有匹配值且最新为正的最新记录
【发布时间】:2013-05-20 19:00:23
【问题描述】:

我是第一次发帖。

我一直试图找出这份报告的问题。 在此报告中,我想显示最近售出但未退货(+ 非 - 价格)的产品的序列号。

如果产品最后售出且未最后退回,我想检查该产品是否已标记为已售出。

这就是我所做的,我想我可能需要对其进行子查询,但我无法弄清楚第一部分。

SELECT 
    ps.serial,p.upc,p.name,so.date_sold 
FROM 
    store_orders so 
    LEFT JOIN store_order_products sop ON so.id = sop.order_id
    LEFT JOIN products p ON sop.product_id = p.id 
    LEFT JOIN product_serials ps ON ps.serial = sop.product_serial
WHERE 
    (CAST(so.date_sold AS DATE) BETWEEN '2013-4-15' AND '2013-5-15')
    AND ps.deleted = '0' AND sop.price > 0
ORDER BY 
    sop.id DESC
LIMIT 10

它正在退回可能最后退回的产品,而不是最后出售的产品。

`ID Serial  Price
1: 8332-83 10.00
2: 8332-83 -10.00
Dont want to see this because it was returned last, not sold last

ID Serial  Price
2: 8332-82 10.00
1: 8332-82 -10.00
This was sold last not returned so looking to see this serial`

请帮忙。 提前致谢。 乔

【问题讨论】:

  • 你能提供一个示例输入/输出吗?
  • 希望能更好地解决我的问题。
  • 还在寻求帮助?只是想排序,分组,价格> 0???

标签: mysql select left-join having getlatest


【解决方案1】:

好的,多亏了我自己才弄明白。但是对于遇到此类问题的其他人,请继续。

三胞胎,哈哈

SELECT * FROM (
SELECT * FROM (
SELECT 
    so.id,sop.product_serial,p.upc,sop.price,p.name,so.date_sold 
FROM 
    store_orders so 
    LEFT JOIN store_order_products sop ON so.id = sop.order_id
    LEFT JOIN products p ON sop.product_id = p.id 
    LEFT JOIN product_serials ps ON ps.serial = sop.product_serial
WHERE ps.deleted = '0' AND so.store_id = '$store_id'
ORDER BY 
    sop.id DESC
LIMIT 1000
) AS t
GROUP BY t.product_serial
) AS t2
WHERE t2.price > 0

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-13
    • 2020-12-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多