产品 | 批次# | 日期 | 成本 |
---|---|---|---|
苹果 | 1 | 05/24/24 | 30 |
苹果 | 2 | 05/23/24 | 29 |
梨子 | 3 | 05/22/24 | 28 |
梨子 | 4 | 05/21/24 | 27 |
浆果 | 5 | 05/20/24 | 26 |
浆果 | 6 | 05/19/24 | 25 |
苹果 | 7 | 05/18/24 | 24 |
苹果 | 8 | 05/17/24 | 23 |
梨子 | 9 | 05/16/24 | 22 |
梨子 | 10 | 05/15/24 | 21 |
浆果 | 11 | 05/14/24 | 20 |
浆果 | 12 | 05/13/24 | 19 |
我想要的结果
产品 | 批次# | 日期 | 成本 | 最后一批# | 最后日期 | 最后费用 |
---|---|---|---|---|---|---|
苹果 | 1 | 05/24/24 | 30 | 2 | 05/23/24 | 29 |
梨子 | 3 | 05/22/24 | 30 | 4 | 05/21/24 | 29 |
浆果 | 5 | 05/20/24 | 30 | 6 | 05/19/24 | 29 |
我的目标是根据日期获取任何产品的最新 2 批次 如果我可以在单独的专栏中进行一些比较数学也会很好,但我会很高兴获得任何帮助......
这是我到目前为止所得到的,但不确定如何解释日期,或者即使这是正确的方向。
SELECT
`productNumber`,
`unitCost`,
`purchaseOrder`,
`productDesc`
FROM
(
SELECT
`productNumber`,
`unitCost`,
`purchaseOrder`,
`productDesc`,
(
@rn := IF(@prev = `productNumber`, @rn +1, 1)
) AS rownumb,
@prev := `productNumber`
FROM
(
SELECT
`productNumber`,
`unitCost`,
`purchaseOrder`,
`productDesc`
FROM
`inboundDetails`
ORDER BY
`productNumber`
DESC
,
`unitCost`
) AS sortedlist
JOIN(
SELECT
@prev := NULL,
@rn := 0
) AS vars
) AS groupedlist
WHERE
rownumb <= 2
ORDER BY
`productNumber`
DESC
,
`unitCost`
您可以使用窗口函数 row_number() 来检测最后一行和前一行。
然后通过 Lead(...) 函数进行旋转。
参见示例
产品 | LotN | 日期 | 成本 |
---|---|---|---|
苹果 | 1 | 2024-05-24 | 30 |
苹果 | 2 | 2024-05-23 | 29 |
梨子 | 3 | 2024-05-22 | 28 |
梨子 | 4 | 2024-05-21 | 27 |
浆果 | 5 | 2024-05-20 | 26 |
浆果 | 6 | 2024-05-19 | 25 |
苹果 | 7 | 2024-05-18 | 24 |
苹果 | 8 | 2024-05-17 | 23 |
梨子 | 9 | 2024-05-16 | 22 |
梨子 | 10 | 2024-05-15 | 21 |
浆果 | 11 | 2024-05-14 | 20 |
浆果 | 12 | 2024-05-13 | 19 |
香蕉 | 13 | 2024-05-13 | 9 |
select Product, LotN lastLotN,Date LastDate,Cost LastCost, rn
,prevLotN,prevDate,prevCost
from(
select *
,lead(LotN)over(partition by Product order by date desc) prevLotN
,lead(Date)over(partition by Product order by date desc) prevDate
,lead(Cost)over(partition by Product order by date desc) prevCost
,row_number()over(partition by Product order by date desc)rn
from inboundDetails
)a
where rn=1
产品 | 最后一批N | 最后日期 | 最后成本 | rn | prevLotN | 上一个日期 | 上一篇费用 |
---|---|---|---|---|---|---|---|
苹果 | 1 | 2024-05-24 | 30 | 1 | 2 | 2024-05-23 | 29 |
香蕉 | 13 | 2024-05-13 | 9 | 1 | 空 | 空 | 空 |
浆果 | 5 | 2024-05-20 | 26 | 1 | 6 | 2024-05-19 | 25 |
梨子 | 3 | 2024-05-22 | 28 | 1 | 4 | 2024-05-21 | 27 |