プロが教えるわが家の防犯対策術!

プログラミングで普通に実現できるので、困っている訳ではありません。
しかし後学のために、興味本位で質問します。

下記例を実現するSQL文が、もし作成可能であればご教授頂きたく思います。
総生産数をロットごとに分割の上、ロット生産数を得るSQLです。
(例では、5を超えない様に6を複数レコードに分割、取得しています)

いくらか考えましたが、私には思い付きませんでした。
「出来そうで出来ない」そんなところに、パズルのような面白みを感じています。


(例)
<元のデータ>
品番 総生産数 ロット数量
A  6    5

<検索結果>
品番 ロット生産数 ロット数量
A  5      5
A  1      5

質問者からの補足コメント

  • 出来ました。ありがとうございました。
    やはり一言を貰えると「出来るはずだ」という気持ちになれます。

    WITH CTB(HINBAN,SURYO,LOT_SU,SU) AS (
    SELECT HINBAN, SURYO , LOT_SU,CASE WHEN SURYO < LOT_SU THEN SURYO ELSE LOT_SU END SU FROM TB
    UNION ALL
    SELECT HINBAN, SURYO-LOT_SU, LOT_SU,CASE WHEN (SURYO-LOT_SU) < LOT_SU THEN SURYO-LOT_SU ELSE LOT_SU END SU FROM CTB WHERE SURYO > LOT_SU
    )
    SELECT * FROM CTB ORDER BY HINBAN, SURYO DESC

    「これをSQL文で出来るでしょうか?」の補足画像1
      補足日時:2023/03/26 21:03

A 回答 (1件)

再帰SQLに対応しているシステムならできると思います。

    • good
    • 1
この回答へのお礼

ありがとうございます。
なんとなくですが、そんな気がしますね。

お礼日時:2023/03/26 15:10

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

関連するカテゴリからQ&Aを探す