If I have 2 tables:
table1-QITEM
ITEMNAME QTYONHAND
---------------------------------------------
boots-snakeproof 100
camel saddle 100
compass 100
elephant polo stick 100
exploring in 10 easy lessons 100
geo positioning system 100
hammock 100
hat-polar explorer 100
how to win foreign friends 100
map case 100
map measure 100
pith helmet 100
pocket knife-avon 100
pocket knife-nile 100
safari chair 100
safari cooking kit 100
sextant 100
stetson 100
tent-2 person 100
tent-8 person 100
table2-QDEL
DELNO DELQTY ITEMNAME SPL
-------------------------------------------------------
51 50 pocket knife-nile 102
52 10 pocket knife-nile 105
53 10 pocket knife-nile 105
54 10 pocket knife-nile 105
55 10 pocket knife-nile 105
56 10 pocket knife-nile 105
57 50 compass 101
58 10 geo positioning system 101
59 10 map measure 101
60 25 map case 101
61 2 sextant 101
62 1 sextant 105
63 20 compass 103
64 1 geo positioning system 103
65 15 map measure 103
66 1 sextant 103
67 5 sextant 102
68 3 sextant 104
69 5 boots-snakeproof 105
70 15 pith helmet 105
71 1 pith helmet 101
72 1 pith helmet 102
73 1 pith helmet 103
74 1 pith helmet 104
75 5 pith helmet 105
76 5 pith helmet 105
77 5 pith helmet 105
78 5 pith helmet 105
79 5 pith helmet 105
80 10 pocket knife-nile 102
81 1 compass 102
82 1 geo positioning system 102
83 10 map measure 102
84 5 map case 102
85 5 compass 102
86 5 pocket knife-avon 102
87 5 tent-2 person 102
88 2 tent-8 person 102
89 5 exploring in 10 easy lessons 102
90 5 how to win foreign friends 102
91 10 exploring in 10 easy lessons 102
92 10 how to win foreign friends 102
93 2 exploring in 10 easy lessons 102
94 2 how to win foreign friends 102
95 5 compass 105
96 2 boots-snakeproof 105
97 20 pith helmet 106
98 20 pocket knife-nile 106
99 1 sextant 106
100 3 hat-polar explorer 105
101 3 stetson 105
QDELの購入/販売でQITEMを更新しようとしています。 SPL = 102または105の場合の購入です。したがって、 spl = 102または105という数量を追加します。その後、spl =何か他の場合は数量を減算します。 QDELからDELQTYの金額を加算または減算し、それをQITEMのQTYONHANDに入れます。 私のコードは動作しません。私はOracle Developer btwを使用しています。オラクルのケースステートメント
update QITEM i
set i.QtyOnHand = (select case when x.SPLNO = 101 then i.QtyOnHand - x.DELQTY
when x.SPLNO = 102 then i.QtyOnHand + x.DELQTY
when x.SPLNO = 103 then i.QtyOnHand - x.DELQTY
when x.SPLNO = 104 then i.QtyOnHand - x.DELQTY
when x.SPLNO = 105 then i.QtyOnHand + x.DELQTY
else i.QtyOnHand - x.DELQTY end
from QDEL x
where x.ITEMNAME = i.ITEMNAME);
1行の副問い合わせが複数の行を返すとエラーが表示されます。誰かが私が間違っていることを教えてもらえますか? QITEM
内のすべての行については
サブクエリは、QDELの各行に対して1つの計算を行い、1行につき1つの結果を返します。あなたはカッコ内にCASE式があるSUM(....)が必要です。詳細については、あなたの投稿を編集し、データベースのタグだけを保存してください(SQL ServerとOracleの両方を同時に使用しない限り)。 – mathguy
ですので、ケース(合計(ケース.....))が必要になりますか? – lawtonhself
私は 'sql server'タグを削除しましたが、これはOracleデータベースであることがわかっているので意図的なものではないと思います。 – sstan