选择其中一个字段中有多个值的记录

时间:2017-04-04 16:44:33

标签: sql sql-server

有人可以帮我缩小搜索范围吗? 三个表设施,样品,位置。使用下面的代码,我得到预期的结果,但我想只显示矩阵代码有多个结果(> 1)的记录。在下面的示例中,我只想显示位置代码0689.

    for column in df:

            df[column] = df_peru[column].str.encode('utf-8')

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

使用exists()检查给定matrix_codefacility_id是否存在其他sys_loc_code的一个选项:

select distinct 
    f.facility_code
  , l.sys_loc_code
  , l.loc_type
  , s.matrix_code
from dt_sample s
  inner join dt_location l 
    on l.facility_id = s.facility_id 
   and l.sys_loc_code = s.sys_loc_code
  inner join dt_facility f
   on f.facility_id = l.facility_id
where l.loc_type = 'TS'
  and exists (
    select 1
    from dt_sample i
    where i.facility_id  =  s.facility_id
      and i.sys_loc_code =  s.sys_loc_code
      and i.matrix_code  <> s.matrix_code
  )
order by 
    f.facility_code
  , l.sys_loc_code
  , s.matrix_code