• ベストアンサー

SQL文の作成でなやんでいます。

一ヶ月分のカレンダーがあり 営業日には1がたっているテーブルがあります 営業日 営業日フラグ 実営業経過日数 2012/02/01 1 1 2012/02/02 1 2 2012/02/03 0 2 2012/02/04 0 2 2012/02/05 1 3 2012/02/06 1 4 2012/02/07 1 5 2012/02/08 0 5 上記のように実営業経過日数をクエリで抽出したいのですが どのようにサブクエリを作成したらいいのか教えてください

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

SELECT 営業日,営業日フラグ ,(SELECT COUNT(*) FROM テーブル名 C WHERE C.営業日<=T.営業日 AND C.営業日フラグ=1) AS 営業経過日数 FROM テーブル名 T ORDER BY 1 です。

gookeiko
質問者

お礼

早速のご回答ありがとうございました、たすかりました

その他の回答 (1)

  • nora1962
  • ベストアンサー率60% (431/717)
回答No.2

一ヶ月内でいいなら select 営業日,営業日フラグ, ( select count(*) from テーブル名 a2 where a2.営業日<=a.営業日 and a2.営業日フラグ=1 ) 営業日日数 from テーブル名 複数の月をまたがって月ごとの営業日日数を求めたいなら、分析関数を使うのがいいでしょう。

gookeiko
質問者

お礼

早速のご回答ありがとうございました。助かりました

関連するQ&A

  • 翌営業日までの日数をSQLで求めたい

    日付と休日フラグの2つのフィールドを持つ カレンダーテーブルを使用して 翌営業日までの日数を求めるSQLを教えていただけ ますでしょうか。 使用環境はaccess2007です。 カレンダーテーブル date flg ---- --- 4/1 0 → 3(翌営業日まで3日間) 4/2 1 → 2(翌営業日まで2日間) 4/3 1 → 1(翌営業日まで1日間) 4/4 0 → 1(翌営業日まで1日間) 4/5 0 → 1(翌営業日まで1日間) よろしくお願いいたします。

  • ACCESS-締め切りの作成について

    こんばんは。是非、みなさんのお知恵をお借りしたいのですが、Access2000で申し込みフォームを作っています。そこで、2営業日前の15:00が締め切りにしたいのですが、どうやったらいいのでしょうか?単純に水曜日分の締め切りが月曜日の15:00というのはできたのですが、祝日とか年末年始とか休日の扱いに困っています。 一応、カレンダーテーブルを作成し、5年分のカレンダーがあり、休日(土日を含む)には休日フラグが立っています(True)。ですので今日の15:00前なら休日フラグが立っていない次の日までが締め切られ、15:00過ぎならフラグの立っていない次の次の日までが締め切られればいいのです。頭では何となく構想はあるのですがVBAで書くことができません。 どうか、ご教授ください。 説明不足でしたら、補足しますのでよろしくお願いします。

  • SQL文を教えてください

    SQL文を教えてください。 以下のテーブルがあります。 T入金 [ID] [名前] [金額] [入金日] 1, 山田, 25000, 2009/01/01 2, 佐藤, 5000, 2009/02/01 3, 山田, 30000, 2009/01/02 4, 佐藤, 45000, 2009/02/02 5, 佐藤, 10000, 2009/02/03 同じ人物で、入金額50000円に至ったときの入金日を 抽出したいと思っています。 上記データだと、 山田さんは入金日2009/01/02、 佐藤さんは入金日2009/02/02、 ということになります。 これを一つのSQL文で抽出できますでしょうか。 ご教授宜しくお願いいたします。 (Access2000のクエリで抽出しようとしていますが、Accessで無理ならSQL Server、MySQL、PostgreSQLでも可です)

  • アクセスで営業日を計算させる方法について

    アクセス2003で作業管理のデータベースを作っています。 フォームで入力された作業開始日に部品ごとに決まっている規定作業日数(営業日のみ)をたして作業完了予定日を出したいのですが、うまくできなくて、どうしようもなくなってしまい、質問させていただきました。 ○テーブル「部品マスタ」 部品番号 部品名 規定作業日数 ○テーブル「カレンダー」 年月日 営業日フラッグ (営業日フラッグは、営業日が1、休業日を0としています) ○テーブル「受注マスタ」 受注ID 部品番号 作業開始日 作業完了予定日 上記「部品マスタ」と「受注マスタ」をもとにクエリを作成し、入力フォームを作成しました。 ○フォーム「受注データ入力」 (入力)受注ID (入力)部品番号 (入力)作業開始日 (表示)部品名 (表示)規定作業日数 (計算)作業完了予定日 翌営業日とか3営業日後という風に納期などを計算する方法は見つけられたのですが、そこから応用をきかすことができなくて、行き詰ってしまいました・・。どなたか助けていただける方、よろしくお願いします。

  • SQLの作り方についてご教授下さい。

    SQLの作り方についてご教授下さい。 以下のようなDB及び条件があるとします。 ・DB ----------------------  No   フラグ   金額   1    1     100   2    0     200   3    0     700   3    1     500   3    1     400 ---------------------- ・抽出条件  フラグが1である物のみ抽出対象とします。  同一Noについては、1件しか出力しません。その1件の決め方は  フラグが1である事が前提で、金額が大きい物を取得します。 上記の抽出したい結果 ------------------  No   フラグ   金額   1    1     100   3    1     500 ------------------ これを取得するSQLの作成方法が分かりません。 どのように作成すれば良いでしょうか?

  • Accessで、横長のテーブルを縦長に作り変えたい

    下のような項目の、「銀行休日マスタテーブル」が存在します。 1レコードの中に、 銀行、年、月をキーとして、1日~31日の休日・営業日の情報を格納しています。 (「1日」~「31日」の0と1は営業日と休日を表すフラグです。) 銀行コード| 年 |月|日数|1日|2日|・・・・30日|31日| 0001   |2006|01| 31|  1|  0|・・・・   1|   0| このテーブルを、以下のように、 銀行コード・年・月・日をキーとしたテーブルに作り変えたいのですが いいアイデアはあるでしょうか。 銀行コード| 年 |月|日|営業日フラグ| 0001   |2006|01| 1|      1| 0001   |2006|01| 2|      0| ・ ・ ・ 0001   |2006|01|30|      1| 0001   |2006|01|31|      0|

  • SQL文で

    DBはアクセス97を使用しております。 メールTo_Fromクエリ Key From FromDomain To ToDomain      To2    ToDomain2  1 name1 abc.co.jp   To1 abc.co.jp  2 name2 abc.co.jp   To2 customer.com  Toname4 jogai_2com  3 name3 abc.co.jp   To3 jogai_3.com 除外ドメインリストテーブル jogai_1.co.jp jogai_2.net jogai_3.com 上記のような『メールTo_From』クエリの「ToDomain、ToDomain2・・・」から 除外ドメインリストテーブルにひとつでも該当するものは含まない レコードを抽出したいと思ってます。 何か良いSQL文はありませんでしょうか?

  • 業務処理ロジック(プログラミング)

    プログラミング初心者です。ロジックも含め教えて頂けると助かります。 プログラミングに関する質問です。(ソースよりのトランザクション設計書を書きたいです。ロジック概要でも良いので教えて下さい。) 素人であるため、お手数お掛けしてしまい申し訳ございませんが、 何卒宜しくお願い致します。 ■ カレンダーテーブル(マスタ:テーブルの変更はなし)が用意されています。(本来は年月が2012年~2020年まで用意されています。)レコードは年月~営業累計まで63個、主キーは年月です。 年月 日付(1) 日付(2) ・・・・・・・・・・・・・・・・・ 日付(29) 日付(30) 日付(31) 201212 1 2 ・・・・・・・・・・・・・・・・・ 29 30 31 201301 1 2 ・・・・・・・・・・・・・・・・・ 29 30 201302 1 2 ・・・・・・・・・・・・・・・・・ (下記にカラムの続き(日付け(31)の隣のカラムから)を書きます) 営業累計(1) 営業累計(2) 営業累計(3) ・・・・・・・ 営業累計(30) 営業累計(31) 0 0 1 ・・・・・・・ 0 20 0 1 2 ・・・・・・・ 20 1 0 0 ・・・・・・・ (1)日付()レコードはカレンダーで、その日の値が入力されています。 (2)営業累計()レコードは、企業が自律的に定めた非営業日には0が入力されていて、それ以外の日を各月でカウントして入力されています。 ★上記条件の際、outputが以下になるような共通関数を作成したいですのですが全く分かりません。申し訳ございません。 INPUT(引数) ・基準となる起算年月日(20121207のような8桁) ・必要日数(09のような2桁) OUTPUT ・営業日付(基準年月日に必要日数を加算したもの:20121215のような8桁) →但し、加算した営業日付が非営業日の場合は翌営業日となる ・営業日付時の営業累計レコードの値 以上です。 宜しくお願い致します。 補足 必要日数が40日、200日など起算年月日の翌月、翌年等も考慮して、営業日付を求めたいです。

  • SQL Server 2005 Expressで営業日の数え方

    Visual Web Developer 2005 Express始めたばかりの初心者です。 簡単な受注管理のDBを作成しているのですが、営業日の数え方について教えてください。 test01テーブルに受注日という項目があり、経過日数という項目で受注日と今日の日付の差を出しています。 SELECT (int,GETDATE()-jutyubi) AS Expr1,jutyubi FROM test01 受注日から今日までの差を表示するのではなく、受注日から今日までの営業日を求めたいのですがどのようにすればよいでしょうか。 営業日は土日の除いて考え、国民の休日が設定できればよりいいです。 エクセルのNETWORKDAYS関数のようなイメージをしています。よろしくお願いいたします。

  • Access 近似する日付の検索

    任意の日付を入れるとその日が営業していればその日の特売品、その日が営業日でなければ次に営業する日の特売品を抽出するクエリ(SQL、関数など)を教えてください。 たとえば、下記のテーブルAがあったときに、次のように動作します。 2000/01/01と入力→2000/01/01、たまごと表示 2000/01/02と入力→2000/01/04、トマトと表示←次営業日 2000/01/03と入力→2000/01/04、トマトと表示←次営業日 2000/01/04と入力→2000/01/04、トマトと表示 テーブルA --営業日------特売品--- 2000/01/01--たまご 2000/01/04--トマト 2000/01/05--ピーマン 2000/01/06--にんじん ちなみに営業日と曜日は関係なく、不定期です。 宜しくお願い致します。