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

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

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

No.69461 の関連記事表示

<< 0 >>
■69461  Re[5]: SQL文で取得できたりできなかったりする理由は?
□投稿者/ スライム -(2013/12/27(Fri) 15:03:26)
            ORDER BY K1.Rev DESC
            により
    ┌──┬──┐ ┌──┬──┐
    │Num │Rev │ │Num │Rev │
    ├──┼──┤ ├──┼──┤
    │  1│  1│ │  5│ 20│ ON DK1.Name = T1.Nameに非該当
    │  2│  5│→│  4│ 10│ ON DK1.Name = T1.Nameに非該当
    │  3│  1│ │  2│  5│ ON DK1.Name = T1.Nameに該当
    │  4│ 10│ │  1│  1│ ON DK1.Name = T1.Nameに該当
    │  5│ 20│ │  3│  1│ ON DK1.Name = T1.Nameに非該当
    └──┴──┘ └──┴──┘
    
    WHERE K1.Rev <= @REVにより
    @REV=9 の場合
    ┌──┬──┐
    │Num │Rev │ @Rev=9に該当
    ├──┼──┤ ↓
    │  5│ 20│××
    │  4│ 10│××
    │  2│  5│○○  → TOP(1) で取得
    │  1│  1│○○
    │  3│  1│×○
    └──┴──┘
           ↑
           ON DK1.Name = T1.Nameに該当
    
    @REV=10 の場合
    ┌──┬──┐
    │Num │Rev │ @Rev=10に該当
    ├──┼──┤ ↓
    │  5│ 20│××
    │  4│ 10│×○  → TOP(1) で取得 → ON DK1.Name = T1.Name
    │  2│  5│○○    に該当しないのでnullになる
    │  1│  1│○○
    │  3│  1│×○
    └──┴──┘
           ↑
           ON DK1.Name = T1.Nameに該当
    
    と、いうことですよね?
    ON DK1.Name = T1.Name で
    既にはじかれるのかと思ってたのですが
    仕方がないので
    
    LEFT OUTER JOIN (
     SELECT TOP(1) D1.Num, D1.Name, D1.Ver, D1.URL, K1.Rev
     FROM [MyMaster].[dbo].D1
     LEFT OUTER JOIN [MyMaster].[dbo].K1 ON K1.Num = D1.Num
     WHERE K1.Rev <= @REV
     D1.Name = T1.Name   ←これを追加
     ORDER BY K1.Rev DESC
    ) AS DK1 ON DK1.Name = T1.Name
    
    と、単純に追加してみたのですが・・・
    T1.Nameがバインドできないそうです。
    
    ではどうすればよいのでしょうか?
    
記事No.69452 のレス /過去ログ118より / 関連記事表示
削除チェック/



<< 0 >>

パスワード/

- Child Tree -