R3午後1設問2(3)について
和音(かのん)さん
(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 [ ※ ]
※印はグレーアウト
[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さん
★DB ゴールドマイスター
(No.2)
この投稿は投稿者により削除されました。(2024.09.23 12:30)
2024.09.23 12:30
GinSanaさん
★DB ゴールドマイスター
(No.3)
仮にエアコンとオートロックの両方のある物件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'で再度聞いても問題ない。
その場合、新物件は
物件コード、(以下略)
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日経過したスレッドへの投稿はできません。