SQL - 过滤记录年份为2

时间:2018-04-23 13:16:45

标签: sql filter

我现在回到沙发里(英国时间) 我正在(不是尝试)评估系统,我想根据年份为2的人过滤所有记录,这意味着他们填写了第2年的表格。

我需要的输出是一个包含用户名的表和包含2的列。

以下是我已经完成的工作。

[SELECT DISTINCT
dbo.profiles.profile_id,
dbo.profiles.profile_fname,
dbo.lesson_observation.lo_year,
dbo.self_assess.sa_year,
dbo.staffappraisal_head_dept.sahd_year,
dbo.staffappraisal_main_meeting.samm_year,
dbo.staffappraisal_mainapprs_followup.samafu_year

FROM
dbo.profiles
LEFT OUTER JOIN dbo.lesson_observation ON dbo.lesson_observation.lesson_obsv_profile_id = dbo.profiles.profile_id
LEFT OUTER JOIN dbo.self_assess ON dbo.self_assess.self_assess_profile_id = dbo.profiles.profile_id
LEFT OUTER JOIN dbo.staffappraisal_head_dept ON dbo.staffappraisal_head_dept.sa_hd_profile_id = dbo.profiles.profile_id
LEFT OUTER JOIN dbo.staffappraisal_main_meeting ON dbo.staffappraisal_main_meeting.sa_mainappraisal_teacherid = dbo.profiles.profile_id
LEFT OUTER JOIN dbo.staffappraisal_mainapprs_followup ON dbo.staffappraisal_mainapprs_followup.sa_ma_fup_teachers_id = dbo.profiles.profile_id
WHERE
dbo.lesson_observation.lo_year = 2 OR
dbo.self_assess.sa_year = 2 OR
dbo.staffappraisal_head_dept.sahd_year = 2 OR
dbo.staffappraisal_main_meeting.samm_year = 2 OR
dbo.staffappraisal_mainapprs_followup.samafu_year = 2
GROUP BY
dbo.profiles.profile_id,
dbo.profiles.profile_fname,
dbo.lesson_observation.lo_year,
dbo.self_assess.sa_year,
dbo.staffappraisal_head_dept.sahd_year,
dbo.staffappraisal_main_meeting.samm_year,
dbo.staffappraisal_mainapprs_followup.samafu_year`][1]

以下是此输出的图片。

我不想重复记录。 感谢大家发送的每一个答案,我真的很感激。

v

感谢您的评论,我感谢他们所有人。

我将尝试更详细地解释我的内容。

我有一个包含

的用户表
  

profile_id profile_fname profile_lname

每个用户每年都需要填写一份评估报告,所以当他们提交下面的表格时,字段年份会有(1或2或3),这些是5个表格

tb1 - lesson_observation
tb2 - self_assess
tb3 - staffappraisal_head_dept
tb4 - staffappraisal_main_meeting
tb5 - staffappraisal_mainapprs_followup

上面的每个表都有以下字段

tb1
tb1.field1
tb1.field2
tb1.field3.profile_id
tb1.year

tb2
tb2.field1
tb2.field2
tb2.field3.profile_id
tb2.year

tb3
tb3.field1
tb3.field2
tb3.field3.profile_id
tb3.year

tb4
tb4.field1
tb4.field2
tb4.field3.profile_id
tb4.year

tb5
tb5.field1
tb5.field2
tb5.field3.profile_id
tb5.year

我希望获得这样的输出。

User ID    | Fname| Lname | TB1 Header | TB2 Header | TB3 Header | TB4 Head etc
----------------------------------------------------------------------
33         | john | wayne | 2          | null       | 2          |  2 

仅显示已填写第2年的所有用户的每个用户的唯一记录

再次感谢您的时间和对我的耐心。

我试图将此时间格式化得更好; - )

感谢

0 个答案:

没有答案