特定の注文番号、TableAおよびTableBに対してQTYがリストされている2つのテーブルがあります。 TableBは、フロア上のユーザーが入力できるが必須ではない(ほとんど入力されない)カスタムフィールドです。Oracle SQLのカスタムデータフィールド
の場合が入力されていません DBにそのレコードがありません、そのNULLはありません。だから、私は試してみて、テーブルを結合したり、ケースステートメントを作成する必要がある注文番号をnleaves。
例
order number, qty, custom qty
SO1234 10 15
SO1235 20 (not entered)
SO1236 5 12
SO1214 8 1
SO1215 2 (not entered)
SO1216 4 2
私はここ
order number, qty, custom qty **mu_qty**
SO1234 10 15 15
SO1235 20 (not entered) 20
SO1236 5 12 12
SO1214 8 1 1
SO1215 2 (not entered) 2
SO1216 4 2 2
は私がしようとしているものです必要なもの:
SELECT s.order_bo, c.attribute, c.value, s.qty
FROM wi.sfc s LEFT OUTER JOIN wi.custom_fields c
ON s.order_bo = c.handle
WHERE c.attribute like '%YIELD_QTY%'
AND s.order_bo like '%SO1234%'
OUTPUT:
OrderBO:SO1234 YIELD_QTY 15 1.000000
注文をSO1235のように入力していないものに変更すると、何も返されません。
は、下のCOALESCEを使用してみました:
SELECT s.shop_order_bo, cu.attribute, cu.value, COALESCE(CAST(cu.value AS varchar(10)), CAST(s.qty AS varchar(10))) AS mu_qty
FROM wip.sfc s, wip.custom_fields cu
WHERE cu.Attribute like '%YIELD%'
AND REGEXP_LIKE(cu.value, '^[[:digit:]]')
AND s.shop_order_bo like 'ShopOrderBO:OR01,M646LC03EF'
ORDER BY cu.value DESC
しかし、床の上の人が時々置くので、出力は同じ番号(s.qtyは、関係なく、私は何をすべきか、また、私は正規表現を追加する必要がありましたありませんそこにある日付や他の言葉は、そうでないような数字ではありません。残念なことに、その地域を引っ張っていないか、私はそれを変更します)
Custom_qty列があればそれをプルし、s.qty列そうでなければ?
私はどんな提案を開いています、私はまだそれは私が
あなたのタイトルは「Oracle」ですが、あなたが「SQL Server 2012」と主張している質問ではありますが、クエリははっきりとオラクルです。 **あなたは本当に使っていますか? OracleとSQL Serverは** 2つの非常に異なる**ものです。 –
@a_horse_with_no_name、はい、それは混乱している私のせいです。私は、oracle構文を使用してSQL Server 2012内のストアドプロシージャを使用しています。私は今あなたに感謝の質問を更新しています! – user3597849