1

私がしていることをより明確に理解するには、以下の私の例を参照してください。

例:

Create View v AS
Select T.*, S.Name, Case When T.TESTDATE = S.STUDYDATE
Then 'Yes' else 'No' END AS TakenTest
From Test T, Student S
Where T.TESTPAPERID = '12345'
And T.StudentNo = S.StudentNo;

ビューが正常に作成されます。ただし、重複する行には次のような同じ値が入力されます。

TESTPAPERID      StudentNo      Name     TakenTest
12345            6437           John     Yes
12345            6437           John     No

T.TESTDATE = S.STUDYDATEの場合は「はい」と表示されることをすでに定義しているので、どうすれば解決できますか。それ以外の場合はありません。そして、同じ値を入力しないでください。

ありがとう

4

1 に答える 1

4

行を1つだけにする場合は、次を使用します。

MAX(Case When T.TESTDATE = S.STUDYDATE Then 'Yes' else 'No' END)
...
GROUP BY <all other columns, which you haven't shown>



また、この部分は適切にコーディングされていません。

T.TESTPAPERID = (Select TESTPAPERID From Student Where TESTPAPERID='12345')

同一であるため:

T.TESTPAPERID = '12345'
于 2011-11-18T09:41:18.473 に答える