次の行があります。
ID fk_id type comment user ticket
-----------------------------------------------------------
000000658 135 notes afdads abas1 0000000000
000000658 999999 admin NULL 0000000000
000000659 136 notes afadsf admin 0000000001
000000659 999999 admin NULL 0000000001
000000660 999999 admin NULL 0000000000
000000661 999999 admin NULL 0000000006
ID が 000000658 である行を返したいのですが、ユーザーが null ではない単一の結果のみを返す必要がありますが、以下に示すように、同じ結果が ID = 000000659 who's user is null も返す必要があります。
ID fk_id type comment user ticket
-----------------------------------------------------------
000000658 135 notes fdads abas1 0000000000
000000659 999999 admin NULL 0000000001
000000660 999999 admin NULL 0000000000
000000661 999999 admin NULL 0000000006
私のケースは、ダッシュボードにすべての苦情を表示し、ユーザーに自分のコメントを表示することです。
私のケースは次のとおりです:私は2つのテーブルに苦情と苦情_詳細を持っており、私のページにログインするたびにすべての苦情を表示する必要がありますが、ユーザーがチケット番号に入力したコメントのみを表示する必要があります。このために、クエリが :select * from ( であるビューを作成します
SELECT
COMPLAINT.COMP_TICKET_NUM,
999999 COMPLAINT_DETAIL_ID ,
'admin' FLAG,--TO be discuss
' ' NOTES,
null LOGIN_USER,
CURRENT_STATE, CURRENT_ACTOR,CALCULATED_ACTOR,CURRENT_ORG_UNIT--,
--TEMP_FLAG
FROM dbo.COMPLAINT
left outer join COMPLAINT_DETAIL on COMPLAINT_DETAIL.COMP_TICKET_NUM = COMPLAINT.COMP_TICKET_NUM
--where COMPLAINT_DETAIL.LOGIN_USER in ('admin')
union
SELECT
COMPLAINT.COMP_TICKET_NUM,
COMPLAINT_DETAIL.COMPLAINT_DETAIL_ID,
isnull(COMPLAINT_DETAIL.FLAG,'admin') FLAG,--TO be discuss
COMPLAINT_DETAIL.NOTES,
COMPLAINT_DETAIL.LOGIN_USER,
CURRENT_STATE, CURRENT_ACTOR,CALCULATED_ACTOR,CURRENT_ORG_UNIT--,
--TEMP_FLAG
FROM dbo.COMPLAINT
inner join COMPLAINT_DETAIL
on COMPLAINT_DETAIL.COMP_TICKET_NUM =COMPLAINT.COMP_TICKET_NUM