HOME»データベーススペシャリスト掲示板»R3午後1設問2(3)について
投稿する

R3午後1設問2(3)について [0767]

 和音(かのん)さん(No.1) 
R3午後1設問2(3)について 
[k]の解答が、
BS1.設備コード  IS NOT  NULL
で良い理由を教えてください。

BS1.設備コード  =  ‘A1’
の別解答なのですが、
BS1.設備コード  IS NOT  NULL
だと、エアコンとオートロックの両方になってしまうような気がするのですが

【参考に】
CREATE VIEW 物件  (物件コード,沿線,エアコン,オートロック)AS
  SELECT B.物件コード,B.沿線
    CASE WHEN [  k   ]THEN [  l  ]ELSE[  m  ]END AS エアコン,
    CASE WHEN [  ※  ]THEN [  l  ]ELSE[  m  ]END AS オートロック
  FROM 新物件  B
    [  n  ]物件設備  BS1  ON B.物件コード  =  BS1.物件コード  AND [  o  ]
    [  n  ]物件設備  BS2  ON B.物件コード  =  BS2.物件コード  AND [  ※  ]

※印はグレーアウト
2024.09.22 10:35
GinSanaさん(No.2) 
DB ゴールドマイスター
この投稿は投稿者により削除されました。(2024.09.23 12:30)
2024.09.23 12:30
GinSanaさん(No.3) 
DB ゴールドマイスター
仮にエアコンとオートロックの両方のある物件Aがあるとする。
その場合、新物件は
物件コード、(以下略)
A、(以下略)
物件設備は
物件コード、設備コード、設置済個数
A、エアコンのコード、2
A、オートロックのコード、3

でよいが、
left joinで接続した場合、
新物件.物件コード、BS1(物件設備).物件コード、BS1.設備コード、BS1.設置済個数、BS2(物件設備).物件コード、BS2.設備コード、BS2.設置済個数

A、A、エアコンのコード、2、A、オートロックのコード、3
というレコードができる。
で、case when BS1.設備コード is not nullならY、それ以外はNという話だが、BS1の絞りの条件は設備コードがA1、つまりエアコンのコードなので、エアコンがあるかないか?という点については「ある」ので、is not nullという聞き方でもよいし、エアコンがない物件ならBS1.*はnullなので、BS1.設備コード = 'A1'で再度聞いても問題ない。
2024.09.23 12:30
返信投稿用フォームスパム防止のためにスレッド作成日から30日経過したスレッドへの投稿はできません。
© 2016-2024 データベーススペシャリストドットコム All Rights Reserved.

Pagetop