SQL
なぜ Excel なのか リアルタイム監視というと、 専用の監視システム BIツール 大規模な基盤構築 を想像されがちです。 しかし実際の現場では、 まず「できるかどうか」を確認したい 装置ログの価値を関係者に理解してもらいたい 上司・経営層に説明できる形…
このテーマで、関数をつかうと、シンプルに作れます。 EOMONTH という関数は 月末を求める関数です。 EOMONTH('対象日', 追加月数) 月数はマイナスもあり ------------------------------------------------ サンプルコード SELECTDATEADD(Day,1,EOMONTH(ge…
SQL で データ集計して、時系列のデータの累積を求める というテーマがあります。 つまり 開始から各行までの合計だったり、過去7回の累計で移動平均を求める など これまではストアドプロシジャのカーソル処理で1行づつ計算する方法を採っていました。 と…
PDFダウンロード 製造装置が出力する「1行のログ」そのまま眠らせていませんか? 1行の文字列を分解すれば、稼働状況・品質状態・異常兆候の把握につながります。 製造装置は状態情報をログとして出力しています。1行の文字列を、判断できる形へ変えていきま…
SQL_DX02_UNION BIサービス SQL高速化の仕組み SQL高速化 を考えてみます。 2つのレコードを接続するとき 例1 1万行の検査データ と 100行の 品目マスタデータ があり 検査データの 品目コードに 品目マスタの 品目名と標準原価をつなぐ。 方法 ①LEFT O…
― SQL MID関数によるリアルタイム分析の基本 ― 製造装置は「1行のテキスト」で状態を語っている 製造現場では、多くの装置が稼働状況を「項目=値」形式のテキストログとして出力しています。 これは、以下のような装置でよく見られる形式です。 チップマウ…
SQL_DX01_Join 【業務でよくある状況】 業務システムや帳票作成では、次のようなSQLを書くことが当たり前のようにあります。 伝票データ(検索テーブル) 商品・顧客・部署などのマスタテーブル ほとんどのSELECT文で JOIN が発生する しかし現場では、 と…
業務インパクト ・工場などで昼勤・夜勤の2交代制を採用している場合、 夜勤は24:00を超えても「翌日」ではなく、昼勤と同じ業務日付として扱われます。 ・つまり、翌朝の昼勤開始時刻(例:8:00)までが、業務上は「前日」に該当します。 ・日別集計では、 …
日付時刻の6分刻み文字を作る 10分刻み、6分刻み といった時間枠の箱の中の イベント発生件数や 合計値を求めるために、 Where 発生時刻 >= '2017/10/07 09:06:00' and 発生時刻 < '2017/10/07 09:12:00' とやると 実行時間が恐ろしく長くなる これを回避…
SQL規定値を作ってみた。 以前から使っていたが、規定値内に関数が使えることを検証したかった。 内容は レコードの保存時刻を 規定値で登録する、というもの 下図:テーブル定義の 「規定値またはバインド」に 関数をいれる。 図は ユニバーサル時刻なので…
10, 20, 30, , , といった数字文字を 0010, 0020, 0030, , , のような 4桁数字に変換することはよくあります。 --- コード ---- DECLARE @No nvarchar(20) = '20' SELECT RIGHT('0000' + @No,4) as Num4 ---- 結果 ----- Num40020 ------------------ それ…
docs.google.com
ストアドプロシジャの内部ループ処理とは何か 本記事で紹介しているのは、SQLのストアドプロシジャ内部で、変数とループ処理を用いて SQL 文そのものを動的に生成・実行する手法です。 Excel-VBA で「変数を使い、For ループで処理内容を組み立てる」のと同…
説明:項目が数珠つなぎに列挙されたテキストから、項目を抽出する スカラー値関数 説明:項目が数珠つなぎに列挙されたテキストから、項目を抽出する スカラー値関数 CREATE FUNCTION [dbo].[GetMidText] ( @strTGT nvarchar(max) --= 'ID=123 氏名=山田太…
必要に迫られて、Case When 内に サブクエリをいれてみました。 備忘でここに記します。 ----------------------------------- ,case when Cnt = (select count(distinct(Place)) PlaceCnt from [dbo]. [Table_xxxx] where InspstepsID = A.InspstepsID and …
SQLテーブルのレコードの日付列が空白になっている!! エッ その日付で集計分析しているのに!! 登録するタブレット側のプログラムを修正するには時間がない。 こんな時はトリガーの出番です。トリガーとは、レコードが新規追加や更新が発生した時に作動す…
同じ品物を何度も購入したとき、最安値は? 同じ品物を何度も購入したとき、最後に購入した時の価格は? など いろんな条件でデータが欲しくなります。 そんなとき、ROW_NUMBER() OVER(partition を使うと便利です。 元々のデータ 検索するコード SELECT * F…
よく使うのですが、毎回コーディングすると大変なので、備忘でしるします。 SELECT dateadd(day,0,convert(date,convert(nvarchar,year(dateadd(MONTH,0,dateadd(hour,9,getdate())))) + '/' + convert(nvarchar,month(dateadd(MONTH,0,dateadd(hour,9,getda…