Matsuda

フォーラムへの返信

5件の投稿を表示中 - 1 - 5件目 (全5件中)
  • 投稿者
    投稿
  • Matsuda
    参加者

    ありがとうございます.様々な状況が考えられるため,より汎用性の高い2)24時間以上の場合で実装できればと思います.
    なお変換後の結果は,例えば125(分)であれば,02:05のような形式にゼロ埋めして表示したいです.

    何卒よろしくお願いいたします.

    Matsuda
    参加者

    ありがとうございます.DATEDIFF関数を使うことにより,分の単位での時間の差分を整数値で取得することができました.

    次に,この数値を「時間:分」のような形式に変換したいと考えています.例えば差分が125(分)であれば,02:05のような形式でテーブルに表示させたいです.

    MySQLであればSEC_TO_TIME関数があり,秒をhh:mm:ss形式に変換できるようなのですが,SQL Serverの場合にはそれに該当する関数が見当たりません.
    SQL ServerのSQL文で変換することは可能でしょうか.あるいはMZプラットフォームのコンポーネントの機能で変換することは可能でしょうか.

    返信先: 工程管理システム簡易版の改変について #7220
    Matsuda
    参加者

    ありがとうございます.MZ内の処理で[テーブル]のデータを変更するよりも,教えていただいたようにSQL文実行時に日本語名を取得して置き換えるほうがシンプルでわかりやすいと感じます.

    立て続けの質問で恐縮ですが,当方のデータベースではサンプルのようなworkingTimeの列が無いため,dateEndとdateStartの値から計算したいと考えています.

    この場合もSQL文の実行時に計算するべきか,あるいは一旦テーブル格納変数にテーブルを設定した後でworkingTimeを計算したものをリスト格納変数に設定し,それをテーブル格納変数に列として追加するべきであるかで迷っています.
    SQL文の実行時にworkingTimeを計算した列を追加することは可能でしょうか.

    Matsuda
    参加者

    大変参考になります.ありがとうございました.

    重ねての質問で恐縮ですが,次に,工程テーブルに表示する工程名を,別のテーブルが保持する別名に変更したいと考えています.
    例えば,いただいたサンプルでのtaskテーブルにおいて,processフィールドの値がIDのようなものだとして,このIDをキーとして,工程の日本語名を保持する別のテーブル(工程名テーブル)があるとします(下記参照).

    工程ID | 工程名
    ———–|———
    process1 | 工程1
    process2 | 工程1

    サンプルではtaskテーブルから同じ受注番号のレコードをSQLで取得して工程テーブルに設定していますが,その際に,工程の表示をIDではなく日本語名に置き換えたいのです.
    どのタイミングで工程名テーブルを参照するのが適切でしょうか.あるいはSQL文でtaskテーブルからレコードを取得するタイミングで,工程名テーブルを参照して日本語名に置き換えてしまうことは可能でしょうか.

    • この返信は10ヶ月、 1週前にMatsudaが編集しました。
    Matsuda
    参加者

    いただいたサンプルファイルを触ってみました.ありがとうございました.
    以下,追加での質問です.

    受注番号に該当する文字列を,先頭の10文字だけを取り出してプロジェクトテーブルに表示させたいと考えています.

    いただいたサンプルでは,テーブル格納変数から0番目の列データリストを取得してリスト格納変数に設定し,リスト格納変数からプロジェクトテーブルに設定しています.

    リスト格納変数の各要素の文字列を,先頭の10文字だけ残して切り取るにはどのような方法があるでしょうか.
    あるいは最初からSQL文でSUBSTRINGやLEFT関数を使ってテーブルを取得するほうが簡単でしょうか.

5件の投稿を表示中 - 1 - 5件目 (全5件中)