2012-01-20 34 views
5

Tôi có truy vấn SQL phức tạp này cho Oracle mà tôi muốn hình dung trong biểu đồ để làm cho nó dễ hiểu đối với đồng nghiệp của tôi. Tôi đã thử tại http://snowflakejoins.com nhưng nó chỉ chokes trên đó.Công cụ để tạo biểu đồ từ truy vấn SQL

Có ai đó đề xuất tốt hơn không? Tôi thích một ứng dụng web trên internet và nếu không phải là một ứng dụng dành cho máy tính để bàn cho các cửa sổ.

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 
+1

Bạn đã thử tab "Trình tạo truy vấn" của Nhà phát triển SQL Oracle chưa? –

+0

Không, một số đồng nghiệp sử dụng nhà phát triển SQL nhưng tôi sử dụng Toad, điều đó chỉ xây dựng hoặc bạn có thể đảo ngược thiết kế sơ đồ từ truy vấn không? Hầu hết các chương trình ERD chỉ xây dựng một cấu trúc cơ sở dữ liệu. – peter

+0

Nếu bạn tạo truy vấn và thay đổi tab thành "trình tạo truy vấn", công cụ sẽ tạo sơ đồ. –

Trả lời

3

Bạn có thể sử dụng tab "Trình tạo truy vấn" của Nhà phát triển SQL của Oracle.

Kết quả của truy vấn mẫu của bạn sẽ là:

query in query builder

0

Mỗi phòng trong số truy vấn phụ là tập hợp dữ liệu, tôi sẽ chỉ làm cho một tuyên bố bằng tiếng Anh về những gì các truy vấn không, sau đó mô tả các tập dữ liệu và cách chúng liên hệ với nhau một cách thực thể-mối quan hệ, sau đó hiển thị cách truy vấn thỏa mãn câu lệnh tiếng Anh đơn giản. Bạn có thể đại diện cho E-R với nhiều công cụ khác nhau.

+0

có vẻ như rất nhiều công việc và bạn biết đấy, một hình ảnh (sơ đồ) nói hơn một nghìn chữ, cũng sẽ thích thứ gì đó có thể tái sử dụng – peter

0

đã tìm thấy làm thế nào để làm điều đó trong Toad, mà tôi thích ở trên Sql Developer. Mở cửa sổ soạn thảo, dán sql, nhấp chuột phải vào cửa sổ soạn thảo và chọn "Send to queryviewer" sql của tôi ở trên quá phức tạp để sử dụng kỹ thuật này, nhưng thật tuyệt khi biết tôi có thể sử dụng nó trong tương lai với nhiều truy vấn "bình thường" hơn. Điểm đến Sergio.

Các vấn đề liên quan