C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

ログ内検索
  • キーワードを複数指定する場合は 半角スペース で区切ってください。
  • 検索条件は、(AND)=[A かつ B] (OR)=[A または B] となっています。
  • [返信]をクリックすると返信ページへ移動します。
キーワード/ 検索条件 /
検索範囲/ 強調表示/ ON (自動リンクOFF)
結果表示件数/ 記事No検索/ ON
大文字と小文字を区別する

No.93614 の関連記事表示

<< 0 >>
■93614  Over句について
□投稿者/ 犬夜叉 -(2019/12/27(Fri) 09:08:56)

    分類:[.NET 全般] 

    以下のような日付と休みのデータ(DATETABLE)があり

    Date Yasumi
    :
    20191220 1 -4
    20191221 2
    20191222 2
    20191223 1 -3
    20191224 1 -2
    20191225 1 -1
    20191226 1 0
    20191227 1 1
    20191228 2
    20191229 2
    :

    今日(12/27)を境に平日で
    以下のように何日後、何日前を得る場合

    Date Offdate
    :
    20191220 -4
    20191223 -3
    20191224 -2
    20191225 -1
    20191226 0
    20191227 1
    :

    SELECT Date, ROW_NUMBER() OVER(ORDER BY Date) AS Offdate
    FROM DATETABLE
    WHERE Yasumi = 1
    AND Date >= 20191227
    UNION
    SELECT Date, 1 - ROW_NUMBER() OVER(ORDER BY Date DESC) AS Offdate
    FROM DATETABLE
    WHERE Yasumi = 1
    AND Date < 20191227

    で、求めたのですがUnionを使用しないで
    Over句のRowsを使用してできるような気がしたのですが
    できないのでしょうか?


親記事 /過去ログ162より / 関連記事表示
削除チェック/

■93616  Re[1]: Over句について
□投稿者/ kiku -(2019/12/27(Fri) 11:56:25)
    2019/12/27(Fri) 11:59:31 編集(投稿者)
    2019/12/27(Fri) 11:58:44 編集(投稿者)
    2019/12/27(Fri) 11:57:28 編集(投稿者)

    <pre><pre>■No93614 (犬夜叉 さん) に返信

    べたな方法で申し訳ないですが、下記のような方法もあります。
    SQLServerで確認しています。
    '2019-12-27'が存在しない場合は考慮していません。

    SELECT
    [Date]
    ,Yasumi
    ,ROW_NUMBER() OVER(ORDER BY Date)
    -
    (
    select TTT.a
    from
    (
    SELECT
    [Date]
    ,Yasumi
    ,ROW_NUMBER() OVER(ORDER BY Date) AS a
    FROM DATETABLE
    where Yasumi = 1
    ) as TTT
    where TTT.[Date] = '2019-12-27'
    )
    + 1
    AS Offdate
    FROM DATETABLE
    where Yasumi = 1
記事No.93614 のレス /過去ログ162より / 関連記事表示
削除チェック/

■93617  Re[2]: Over句について
□投稿者/ 犬夜叉 -(2019/12/27(Fri) 13:15:42)
    No93616 (kiku さん) に返信

    ありがとうございます。
    いまひとつ ROWS の使い方がわかりませんでした。

    先に指定の日付の番号を求めるSQLは私も試しにやっていました。
    すみませんでした。OVER 句などで指定日を基準にする方法はないみたいですね。

    それより、
    '2019-12-27'が存在しない場合は考慮していません
    ですが・・・・
    考慮する・しない以前にまったく考えてもいませんでした。

    現状でいきます。
    ありがとうございました。


記事No.93614 のレス / END /過去ログ162より / 関連記事表示
削除チェック/



<< 0 >>

パスワード/

- Child Tree -