我有一个表oeordhdr_sql
,其中包含使用Ord_No
作为唯一ID的订单的所有信息。在另一个表wsPKG
中,我有每个托盘存储的信息。托盘可以与特定订单相关联,在这种情况下,它会在Org_Ord_No
中获得一个值,以将其与oeordhdr_sql
中的订单相关联。我有两个INNER JOIN
ltrim
以匹配托盘和订单。由于可以有多个托盘与一个订单相关联,因此我们将每个托盘移动到名为Bin_No
的仓(TRK
),以表明它已经发货。
到目前为止,我有这段代码
SELECT oeordhdr_sql.ord_no, wsPKG.Bin_no
FROM wsPKG
INNER JOIN oeordhdr_sql ON LTRIM(wsPKG.Org_Ord_no) = LTRIM(oeordhdr_sql.ord_no)
WHERE wsPKG.Bin_no = 'TRK'
返回同一订单的多行。
23708 TRK
23769 TRK
23769 TRK
23769 TRK
23769 TRK
23708 TRK
23708 TRK
我希望能够为我的送货经理返回一个值,以显示与特定订单相关的所有托盘何时位于TRK中。该值可以发货。最终我也会有一个加载状态,如果有些是TRK而不是全部。
答案 0 :(得分:0)
我想你想要一个<?php
$body = "This question is a {{x}} of {{y}} within SO.";
preg_match_all('/\{\{(.*?)\}\}/', $body, $matches);
$searches = $matches[0];
$replaces = ['possible duplicate', '@21100035'];
echo str_replace($searches, $replaces, $body);
// Output
// This question is a possible duplicate of @21100035 from SO.
和GROUP BY
:
HAVING
这将返回所有SELECT oh.ord_no
FROM wsPKG p INNER JOIN
oeordhdr_sql oh
ON ltrim(p.Org_Ord_no) = ltrim(oh.ord_no)
GROUP BY oh.ord_no
HAVING MIN(p.Bin_no) = 'TRK' AND MIN(p.Bin_no) = MAX(p.Bin_no)
个所有bin编号为oh.ord_no
的内容(它忽略'TRK'
s,因此如果数据有NULL
s,您可能需要指定与那些垃圾箱号码有关。
注意:NULL
条件可疑。应该没有理由在相关表之间的JOIN
键上使用TRIM()
。如果键是数字,这是没有意义的。如果键是字符串,则应存储它们而不带前导或尾随空格。
答案 1 :(得分:0)
尝试以下方法:
Select DISTINCT OS.ord_no, WP.Bin_no
FROM wsPKG WP
LEFT JOIN oeordhdr_sql OS on ltrim(WP.Org_Ord_no)=ltrim(OS.ord_no) AND WP.Bin_no='TRK'
HTH
感谢。