问题描述
我正在尝试使用 Python 执行此操作,但我也可以访问 sql。我已经包含了一个简单的示例图片,但我正在使用的数据框有 1000 多个项目。基本上我需要找到一种方法来搜索数据框
如果整个数量在 FR 中,则停止并打印每个项目编号、库位和 WH 代码。如果整个数量不在 FR 中,则接下来查看 PV,然后查看 LH,直到达到完整数量。
解决方法
在 SQL 中: 您可以运行此查询以获取结果:
SELECT
-- Select relevant columns
*
FROM
(
SELECT
"Item Number","Qty Needed","FR Qty","PV Qty","LH Qty","WH Code","Bin Loc.",custom_order,(
CASE
WHEN row_val = "Qty Needed" THEN True
ELSE False
END
) AS selected
FROM
(
SELECT
table1."Item Number",table1."Qty Needed",table1."FR Qty",table1."PV Qty",table1."LH Qty",table2."WH Code",table2."Bin Loc."
-- Creating a custom order based on WH code,(
CASE
WHEN table2."WH Code" == 'FR' THEN 1
WHEN table2."WH Code" == 'PV' THEN 2
WHEN table2."WH Code" == 'HR' THEN 3
ELSE 4
END
) AS custom_order
-- Will be used for matchin quantity available with quantity required,ROW_NUMBER() OVER(PARTITION BY table1."Item Number" ORDER BY custom_order ASC) AS row_val
FROM
df2 AS table1
LEFT JOIN
df1 AS table2
ON
table1."Item Number" = table2."Item Number"
ORDER BY
table1."Item Number",custom_order
)
)
WHERE
selected = True