从SQL查询制作图表的工具

时间:2012-01-20 14:58:18

标签: sql oracle diagram toad erd

我有一个针对Oracle的复杂SQL查询,我希望在图表中可视化,以使我的同事可以理解。我试着http://snowflakejoins.com,但它只是呛到它。

有人有更好的建议吗?我更喜欢互联网上的网络应用程序,如果不是Windows的桌面应用程序。

with 
  logs as (
    select 
      l.job_id, 
      l.subjob,
      sum(l.verwerkt) verwerkt, 
      sum(l.errors) errors, 
      max(l.datum) laatst
     from 
      dinf_monitor_logs l, 
      dinf_monitor_jobs j 
     where 
      l.datum>sysdate-j.dagen
      and j.job_id=l.job_id(+)
     group by 
      l.job_id, 
      l.subjob
  ),
  alllogs as (
    select job_id, subjob, max(datum) laatst from dinf_monitor_logs group by job_id, subjob
  )
  select row_number() over(order by alllogs.job_id, alllogs.subjob) r,
    alllogs.job_id,
    alljobs.naam,
    alllogs.subjob,
    logs.verwerkt, 
    logs.errors, 
    alllogs.laatst datum,
    alljobs.wikilink,
    alljobs.loglink,
    alljobs.contact,
    case 
      when alllogs.laatst is null then 1
      when round(sysdate-(alllogs.laatst+alljobs.dagen))<0 then 0
      else round(sysdate-(alllogs.laatst+alljobs.dagen))
    end overtijd,
    case 
      when logs.errors-alljobs.max_errors>0 then 5
      when logs.verwerkt-alljobs.min_verwerkt<0 then 7
      when round(sysdate-(alllogs.laatst+alljobs.dagen))>0 then 3
      else 11
    end status
  from logs, alllogs, (select job_id, naam, wikilink, loglink, contact, dagen, min_verwerkt, max_errors from dinf_monitor_jobs) alljobs
  where 
    logs.job_id(+)=alllogs.job_id 
    and logs.subjob(+)=alllogs.subjob
    and alllogs.job_id=alljobs.job_id
  order by alllogs.job_id, alllogs.subjob

3 个答案:

答案 0 :(得分:3)

您可以使用Oracle SQL Developer的“查询构建器”选项卡。

您的示例查询结果将是:

query in query builder

答案 1 :(得分:0)

每个子查询都是数据集,我只是简单地说明查询的作用,然后描述数据集以及它们如何以实体关系的方式相互关联,然后显示查询的方式满足简单的英语声明。您可以使用各种工具代表E-R。

答案 2 :(得分:0)

在Toad中找到了如何做到这一点,我更喜欢上面的Sql Developer。 打开编辑窗口,粘贴sql,右键单击编辑器窗口并选择“发送到queryviewer” 我上面的sql太复杂了,不能使用这种技术,但很高兴知道我可以在将来使用更多“正常”查询。 指向塞尔吉奥。