前提・実現したいこと
以下の様に二つのテーブルがあり、table1のwantの値を超える数(もしくは等しい)になるまでtable2の同一itemのvalを加算。
want <= val() を満たすまで(不足していれば全て)のuniqueIDを各item毎にレコードを取得したいと考えています。
table1
ID | item | want |
---|---|---|
1 | test1 | 100 |
2 | test2 | 50 |
3 | test3 | 200 |
4 | test4 | 50 |
table2
uniqueID | item2 | val |
---|---|---|
A111 | test1 | 10 |
B112 | test1 | 50 |
C234 | test1 | 40 |
D823 | test1 | 60 |
E234 | test2 | 100 |
F456 | test2 | 30 |
G122 | test2 | 20 |
H442 | test3 | 50 |
J768 | test3 | 30 |
K382 | test3 | 100 |
L678 | test3 | 10 |
出力
test1 A111
test1 B112 (10+50+40 計100)
test1 C234
test2 E234 (100)
test3 H442
test3 J768 (50+30+100+10 計190)
test3 K382
test3 L678
test4 null (データ無し)
SQLServer
試したこと
当方、単純なSQL文しか扱えない為、実現方法が分かりませんでした。
少し調べてみて、再帰SQLを用いるのかな、と漠然と考えておりますがどの様に記述すれば良いか判然としません。
お手数をお掛けしますが、以上の内容で解決方法をご教授頂けたらと、投稿させて頂きました。
何卒宜しくお願いいたします。
あなたの回答
tips
プレビュー