ホーム   フォーラム   FAQ
 
メインメニュー
ログイン
ユーザー名:

パスワード:


パスワード紛失

SQL Where句、DB SQL

  • このフォーラムに新しいトピックを立てることはできません
  • このフォーラムではゲスト投稿が禁止されています
depth:
0
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 .2 .3 .4 .5 .6 | 投稿日時 2016-6-24 17:11 | 最終変更
nkmt  長老   投稿数: 1668
実験済でほぼ確証は得ているのですが、間違いないか教えて下さい。

1.範囲指定 → SQL Where句 → DB SQL
  ここには、GROUP BY の記述は出来ないでしょうか?

2.GROUP BYしたければ、メインソースではなく
  SQLコマンド を使うという事でしょうか?

3.SQLコマンドのバッチタスク → 修正モードはNGでしょうか?
   ※uniPaaS だとOKという情報も入手しましたが
    今まだ実験出来ていない。
   ※GROUP BYした内容で、SUMした金額などを書き込み希望。
      → 子タスクで実行すれば良いのでしょうね。

投票数:0 平均点:0.00
depth:
1
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2016-6-24 17:42
fjksudou  長老   投稿数: 180
nkmtさん
こんにちは
SQL進んでますね

1.範囲指定の枠で、私はGROUP BYの記述はやったことありません。
  GROUP BYはSELECT句と基本的には一緒です。
  そのため、できないと思います。

2.そうですね。一発回答ならSQLコマンドですね。

3.SQLコマンドのバッチタスクは、
  私の場合は全て「修正モード」で実行してます。
  UPDATEやINSERT、プロシージャまでいけます。
  レコードロックは手動になりますが…。

統計表・集計表等を印刷するプログラムを作る場合は、SQLコマンドが高速で簡単ですよ。
もうビートリーブには戻りたくなくなります。
投票数:0 平均点:0.00
depth:
1
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2016-6-25 6:02
nkmt  長老   投稿数: 1668
fjksudou様、おはようございます。
レスありがとうございます。
今度は、uniPaaS V1 Plusで実験してみました。

Q=SQLコマンド で SELECT 商品CD,SUM(数量) FROM ●●データ
GROUP BY 商品CD WHERE・・・みたいな感じで。

タスクの初期モードを M=修正 で実行すると
設定されているタスク初期モードは使用できません
になります。

私も新規案件ではPervasiveは使わなくなりました。

SQL ServerのEXPRESSなどはお手軽ですね。
小規模ユーザーさん相手が多いので、事足りています。
投票数:0 平均点:0.00
depth:
2
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2016-6-27 8:34
fjksudou  長老   投稿数: 180
mkmtさん
こんにちは

SQLコマンドにすると、自動的に、
タスク特性の「オプション」「修正」が「No」になっています。
これを「Yes」に変更します。
これで使えますよ。
投票数:0 平均点:0.00
depth:
1
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2016-6-27 10:24 | 最終変更
nkmt  長老   投稿数: 1668
fjksudou様、教えて頂きありがとうございました。

Q=SQLコマンドにすると、修正=Noになりますね。

知りませんでした。

修正が出来ない → オプションの確認 を見落としておりました。

助かりました。

※追加で教えて下さい。

SQLコマンドの範囲指定に、:1 などを指定しているのですが、それらが展開されている分を見る方法ってありますか?
投票数:0 平均点:0.00
depth:
1
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2016-6-27 11:24 | 最終変更
nkmt  長老   投稿数: 1668
Q=SQLコマンド で SLECET GROUP BY した分は、
タスク終了条件=No、チェック時期=B 前置き で
レコード後処理を記述すれば、そこで1件1件通過するんだと思いますが


Q=SQLコマンドで UPDATE を指定した場合は
タスク終了条件=Yes、チェック時期=A 後置き でOKですよね?
投票数:0 平均点:0.00
depth:
1
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2016-6-27 17:39
fjksudou  長老   投稿数: 180
SQLコマンドの確認は、
タスク前処理の「エラー」「警告」で同じ式を表示して確認できます。

他に、よくデバッグで使うのが、ログ表示です。

オプション・設定・ロギング
「設定」は全て「Yes」にし、外部ログファイルを記述します。
「DBMS」の「ログレベル」を「C=ユーザ用」にします。
MAGICを再起動して、プログラムを実行してください。

実行しているSQL文がログファイルで確認できます。


Q=SQLコマンドで UPDATE を指定した場合は
タスク終了条件=Yes、チェック時期=A 後置き でOKだと思います。
投票数:0 平均点:0.00
depth:
1
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2016-6-27 23:36
nkmt  長老   投稿数: 1668
fjksudou様、こんばんは。
またまた教えて頂きましてありがとうございます。
ロギングなんて有ったのですね。
知りませんでした。
勉強になりました。
範囲指定しての一括上書きや削除などもSQLコマンドを使っていく機会も増えそうです。
投票数:0 平均点:0.00

  条件検索へ


Copyright (C) Magic Software Japan K.K. All Rights Reserved.
個人情報保護方針 会員規約