• 締切済み

質問の続き

>締め日は固定していないので、日付まで入れて下さい。 >その日から1ヶ月の集計をする仕様になっています。 > >集計開始日に 2007/5/21 と日付まで入れると、 >2007/5/21 ~ 2007/6/20 までになると思います。 > >============================================================ >日付の入力を省略したいなら、下記の様に変更して下さい。 > >集計開始月に 2007/5 と月まで入力すれば、 >2007/5/21 ~ 2007/6/20 までになると思います。 > >----集計日---- >PARAMETERS 集計開始月 DateTime; >SELECT DateAdd("d", 番号+20, 集計開始月) as 集計日 >FROM 連番 >WHERE DateAdd("d", 番号+20, 集計開始月) < DateAdd("m", 1, >DateAdd("d", 20, 集計開始月)); というSQLを教えてもらったのですがこれだと[2008/01]と入力すると 2008/01~02までとなってしまいます。 これを2007/12~2008/01と変えたいのですがどこをどうしてよいやら困ってます。 どなたか教えてくれませんか?

みんなの回答

  • CHRONOS_0
  • ベストアンサー率54% (457/838)
回答No.1

>[2008/01]と入力すると、 >2007/12~2008/01 入力はパラメータでするとしますね[月度?] 確か20日締めなんだよね? だったら年月日の抽出条件欄に between DateAdd("m",-1,DateValue([月度?] & /20))+1 and DateValue([月度?] & /20) または年月日から「月度」を求める式フィールドを作り 月度6: Format(DateAdd("m",-(Day([年月日])>20),[年月日]),"yyyy/mm") このフィールドの抽出条件欄に =[月度を入力してください(yyyy/mm)]

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • ODBC SQLサーバーでSQLを実行したい・・・

    ODBC SQLサーバーでSQLを実行したい・・・ 昨日から入り浸っている初心者PGです。 昨日は、実行日から直近の金曜日の日付を抽出するというSQLを質問させて頂きました。 今回は前月の月初第一金曜日に当たる日付を出力するSQLについての質問となります。 下記のSQLは先輩が作成したSQLになります。 もっと簡単に書けないか悩んでいます。 補足として日付は8桁で出力をしたいです。(例:20100507) 宜しければご教授賜りたいです。(原文そのままコピーしてますw) /* いけてるsql */ SELECT case (6 - (datepart(Dw,cast(datename(year,dateadd(mm, -1, getdate())) + '-' + datename(month,dateadd(mm, -1, getdate())) + '-' + '01' as datetime)))) when '-1' then datename(year,cast(datename(year,dateadd(mm, -1, getdate())) + '-' + datename(month,dateadd(mm, -1, getdate())) + '-' + '01' as datetime) + 6) + datename(month,cast(datename(year,dateadd(mm, -1, getdate())) + '-' + datename(month,dateadd(mm, -1, getdate())) + '-' + '01' as datetime) + 6) + RIGHT('00'+CONVERT(varchar,datename(day,cast(datename(year,dateadd(mm, -1, getdate())) + '-' + datename(month,dateadd(mm, -1, getdate())) + '-' + '01' as datetime) + 6) ),2) else datename(year,cast(datename(year,dateadd(mm, -1, getdate())) + '-' + datename(month,dateadd(mm, -1, getdate())) + '-' + '01' as datetime) + (6 - (datepart(Dw,cast(datename(year,dateadd(mm, -1, getdate())) + '-' + datename(month,dateadd(mm, -1, getdate())) + '-' + '01' as datetime))))) + datename(month,cast(datename(year,dateadd(mm, -1, getdate())) + '-' + datename(month,dateadd(mm, -1, getdate())) + '-' + '01' as datetime) + (6 - (datepart(Dw,cast(datename(year,dateadd(mm, -1, getdate())) + '-' + datename(month,dateadd(mm, -1, getdate())) + '-' + '01' as datetime))))) + RIGHT('00'+CONVERT(varchar,datename(day,cast(datename(year,dateadd(mm, -1, getdate())) + '-' + datename(month,dateadd(mm, -1, getdate())) + '-' + '01' as datetime) + (6 - (datepart(Dw,cast(datename(year,dateadd(mm, -1, getdate())) + '-' + datename(month,dateadd(mm, -1, getdate())) + '-' + '01' as datetime))))) ),2) end

  • ODBC SQL ServerでSQLを発行したいのですが・・・

    ODBC SQL ServerでSQLを発行したいのですが・・・ IDがそのまま表示されてしまっていたので、再度登録しなおしました>< ・実行SQL DECLARE @DATE DATETIME DECLARE @STARTDATE DATETIME SET @DATE = GETDATE() SET @STARTDATE = DATEADD(DAY,-7,@DATE) SELECT * FROM teble WHERE 配達開始日 >= @DATE AND 配達開始日 <= @STARTDATE 上記のようなSQLを発行しデータを取得したいのですが、実行結果に表示がされません。 どうしていいかわからず困っています。 頭のDECLARE文しか動いていないのではないんだろうかと思っています。 実行ツールはCommon SQL Envieron mentを使用しています。

  • SQLクエリ1年前のデータを削除できない

    現在このクエリを作成したのですがデータが削除されなくて、データ全件が抽出されてしまいます。 以下の構文で試したのですが・・・・もし、ご指摘、アドバイス等ございましたらよろしくお願いします。 select * from テーブル名 delete from テーブル名 where 日付 < = (select DATEADD(year,(-1),(日付))) ちなみに、日付はDATETIMEです   バージョン:SQL management studio 10.50.25.000

  • Accessのパラメータクエリを他のクエリから呼ぶ

    VBAで日付を指定してSelectするクエリなのですが、同じ処理をたくさんつくるのが嫌なので、 パラメータクエリにしたいのですが、、、 例えば、 日別売上クエリ: Parameters pDate datetime; を持つ        (VBAから直接呼ぶのはこれだけ) このクエリは、以下の2つのJoinからなる  日別レジ別売上クエリ: 下位クエリで、Parameters pDate datetime; を持つ (客数を得るクエリ) 日別部門別売上クエリ: 下位クエリで、Parameters pDate datetime; を持つ (金額を得るクエリ) 共に、Where を日付=pDateとしてます。 そうしておいて、VBAから set rs1=DB1.Openrecordset(”Select  、、、、From  日別売上クエリ(#” & strDate  & ”#) ”) とやったのですが、ダメでした。 パラメータクエリを他のクエリから呼ぶ構文をお教え下さい。 尚、「パラメータクエリをクエリから呼」や「パラメータクエリをSQLから呼」でGoogleったのですが、 見つかりませんでした。

  • SQLで日付を条件に削除したい

    SQLで日付を条件に削除したい update の列にdatetime 型で更新日が入っています。 2010年の6月以降を削除したいのですが どうにもうまくいきません。(一応以下のようなことをやってみたりしました) どのように書いたらいいでしょうか?? DELETE FROM SYS WHERE update >#2010/06#

  • ストアドでif文

    (1)ストアドでif文をしたいんですがやり方が少し分からないんでお願いします 日付の項目で空なら日付を読み込まずに処理 日付入力済みならそれを読み込んで処理したいのですが 流れとしては if文で分岐→テーブル項目全削除→追加処理(insert ,serect文で) →終了 ちなみにVBからストアドを読みこんなでAccessを開いています VBの日付はMasked Textです Datetime型 StringからDatetime型に変換できないと出ます (2)ちなみにストアドのWhere文ですが、 ・1と100を比較して100なら全取得、それ以外なら該当番号データ取得 ・日付を以降、以上で検索 もし日付が両方、未入力なら日付未選択で「ある」データを取得したい 片方未入力なら、出来ましたが、両方未入力だと思うようにデータが取れません 工場番号は確認できましたが、日付が思うように表示されないんで出来ればこれもお願いします where ('1' = '100' OR ('1' <> '100' AND 受注残.工場番号 = '1')) AND ( 受注残.受注日 >= '2004/10/01' and 受注残.受注日 <= '2006/10/01') and ('2004/10/01' <> ''2006/10/01'' )

  • 条件式について

    access2007です。売上管理のDB作ろうとしています。顧客の〆日が末日でない場合、締切日を超えた時、翌月の請求分として集計・認識させるためにクエリのフィールドに入れる条件式の間違っている部分、または考え方を指摘していただきたいと思います。 伝票に[日付]"yyyy/mm/dd"を入力→[締切日]"dd"は顧客マスタを参照し、クエリーの[締切日]に"dd"を代入。[締切月]には[日付]("dd"のみ)<[締切日]の場合は入力した[日付]のmmをそのまま、[日付]>[締切日]の場合には翌月分という意味でmmに1を加えたものを返す・・というものです。 締切月: IIf(Format([日付],"dd")>[締切日],Format(DateAdd("m",1,[日付]),"mm"),Format([日付],"mm")) これだと、エラーが出てしまいます。 どこがおかしいのでしょうか?

  • AccessのSQL文 検索

    お世話になります AND検索でBetween検索とテキストでAND検索をさせているのですが ■不具合 下記のSQLのままだとすべての場所を満たさないと検索できません たとえば開始日~終了日だけなら絞込できません テキストを入力すると初めて絞込みをします ■たぶん たぶん下記SQL文にどちらかNULL値の場合をスルーさせる文章を追加させなければならないと思います WHERE (((B.番号)=[Forms]![Search]![テキスト]) AND ((B.D日付) Between [Forms]![Search]![txtDTPicker0] And [Forms]![Search]![txtDTPicker1])) ORDER BY B.D日付; わかる方よろしくお願いします

  • アクセスの日付入力について。

    アクセスのフォームで日付入力をカレンダーコントロールから入力しようと考えていますが、日付入力フィールドが8種類あります。例えば、A購入日、B修理日、C修理完了日、D保守開始日、E保守終日、、、 などです。これらに1つずつカレンダーコントロールを設けることしか考えがないのですが、他によい方法があると思いますが、教えてください。現在DとEはDateAddで算出し、1つのカレンダーでまかなっています。 例えば、1つのカレンダーを固定して、新規画面を開いたときはその日の日付が表示され、それから加減して入力することは可能でしょうか?よろしくお願いいたします。

  • Access VBAでパラメータクエリをSQL文へ

    すみません、、初めて質問しますが、 お手柔らかに宜しくお願い致します。 1.集計クエリ1    ID--Group化 出庫数--合計 日付--Where条件 2..集計クエリ2  ID--Group化 入庫数--合計 日付--Where条件 3.出力用クエリ  ID 商品名 集計クエリ1の合計 集計クエリ2の合計  IDと左結合で、上記のクエリを作成 デザインビューでは1~3は完成しており、 VBA上で1と2を3のSQLに置き換えるところで悩んでおります。。 どなたか教えてください。 ちなみに1.集計クエリの下記のように試してみましたが、 Dim dbs As DAO.Database Dim qdf As QueryDef Dim rst As DAO.Recordset Set qdf = dbs.QueryDefs("Q_データ抽出をしたいクエリ") With qdf .Parameters("[Forms]![f_DataEx]![txt_YearStart]") = "2011" .Parameters("[Forms]![f_DataEx]![txt_MonthStart]") = "02" .Parameters("[Forms]![f_DataEx]![txt_DayStart]") = "23" .Parameters("[Forms]![f_DataEx]![txt_YearEnd]") = "2011" .Parameters("[Forms]![f_DataEx]![txt_MonthEnd]") = "02" .Parameters("[Forms]![f_DataEx]![txt_DayEnd]") = "23" Set rst = .OpenRecordset End With 上記で求めた"rstを基にSQL文が実行できれば、実現できそうなんですが、 うまく行きません。 言葉足らずの内容もあるかと思いますが、宜しくお願い致します。

このQ&Aのポイント
  • 本日ERECOM社のWBC-1167GS2-Bというルーターを購入しましたが、インターネットに接続できません。
  • Wi-Fiの電波は飛んでいるのに、Safariを使用してもページを開けません。
  • スマホではWi-Fiを切ってモバイルデータ通信を使えば問題なくインターネットが利用できます。
回答を見る