1
SET colsep '|'
SET echo OFF
SET feedback OFF
SET linesize 1000
SET pagesize 0
SET sqlprompt ''
SET trimspool ON
SET headsep OFF

spool monitor.csv

SELECT error_id, '|', error_desc, '|', b.control_by
  FROM error a, component_info b
 WHERE a.error_id IN (
         SELECT error_id FROM component_thresh JOIN component_info USING (component_id))
 GROUP BY b.control_by
 ORDER BY a.error_desc
/

我需要按不同表中的列分组,然后按 error_desc 排序,然后输出结果。

编辑:啊!我需要两者都订购。

4

1 回答 1

0

似乎您想将所有相同的行排列control_by在一起,以便能够浏览它们。尝试做GROUP BY的是将所有内容放在一行中,但这似乎不是您想要的。

您可以使用 ORDER BY 子句代替 GROUP BY。这会将所有相同的行control_by放在一起。此外,您可以GROUP BY b.control_by, a.error_id;并得到相同的结果。最好的选择是使用ORDER BY control_by, error_desc.

select error_id, '|', error_desc, '|', b.control_by from 
  error a, component_info b where 
  a.error_id in (
    select error_id
    from component_thresh
    join component_info using(component_id)
    )
 order by b.control_by, a.error_desc;
/

这应该为您的客户解决问题。

于 2014-01-12T06:01:50.897 回答