クリップボード

  SELECT INTO



  
BEGIN
	SELECT
		締日
		,締日区分
		,支払日
	INTO
		WK_締日
		,WK_締日区分
		,WK_支払日
	FROM 得意先マスタ
	WHERE
		得意先コード = '0001';
EXCEPTION
	WHEN NO_DATA_FOUND THEN
		NULL;
	WHEN TOO_MANY_ROWS THEN
		NULL;
	WHEN OTHERS THEN
		DBMS_OUTPUT.PUT_LINE('例外発生:'||SQLCODE||':'||SQLERRM);
END;
  



  カーソル



  
CURSOR cur_main is 
	select ROWID 
		,取引先コード 
		,商品コード 
		,数量 
		,金額 
		,取引日付 
	 from 取引データ 
	 where 取引日付 = PM_DATE 
	 and 更新済 is NULL;
  



  ループ処理

  
OPEN cur_main; 

LOOP 
	FETCH cur_main INTO 
		FLD_ROWID, 
		FLD_取引先, 
		FLD_商品, 
		FLD_数量, 
		FLD_金額, 
		FLD_日付; 
	if cur_main%NOTFOUND then 
		EXIT; 
	end if; 
 
END LOOP; 
 
CLOSE cur_main; 
  



  UPDATE => 対象行無ければレコードのみ作成

ループブロックを使用しているのは、INSERT でレコードのみ作成している為です

  
LOOP 
	UPDATE 得意先集計 
		set 
			更新日 = SYSDATE 
			,当月売上金額 = 当月売上金額 + FLD_金額 
		where 
			請求先 = FLD_取引先 
		and	経過月 = EXTRACT(month from FLD_日付) 
		; 
	IF SQL%NOTFOUND THEN 
		INSERT INTO 得意先集計 
		(請求先,経過月,当月売上金額,更新日) 
		VALUES(FLD_取引先,EXTRACT(month from FLD_日付),0,SYSDATE); 
	ELSE 
		EXIT; 
	END IF; 
END LOOP; 
  










  infoboard   管理者用   
このエントリーをはてなブックマークに追加





フリーフォントWEBサービス
SQLの窓WEBサービス

SQLの窓フリーソフト

素材

一般WEBツールリンク

SQLの窓

フリーソフト

JSライブラリ