SQL資料表聯合查詢問題

時間 2022-10-13 16:20:20

1樓:

select n.name,n.zs,p.

wc,((p.wc/nvl(n.zs,100))*100"此處比率演算法請自己驗證修改")||'%' from (select b.

name,m.zs from b left join (select dw,count(id) zs from a group by dw) m on b.name = m.

dw) n left join (select dw,count(id) wc from a where wc = '完成' group by dw) p on n.name = p.dw

主要是利用左連線

2樓:匿名使用者

select aa.name name,

sum(aa.zs) zs,

sum(aa.wc)wc

from

(select

b.name,

count(a.id) zs,

0 wc

from b

left join a on a.dw=b.nameunion all

select

b.name,

0 zs,

count(a.id) wc

from b

left join a on a.dw=b.namewhere a.wc='完成')aa

group by aa.name

好久沒用sql 能力有限 按以上sql語句 能查出表c中的前三個欄位,語句沒什麼測試 但是大體上可以是這樣的 最後一個列由於涉及到相除(除數wc有可能為0),在sql不知道該如何判別那個列是否為0 只能說僅供參考吧

3樓:

select b.name,

count(a.dw) as zs,

sum(case when a.ws = '完成' then 1 else 0 end) as wc,

case when count(a.dw) = 0 then 0 else sum(case when a.ws = '完成' then 1 else 0 end) / count(a.

dw) end as wcl

from b

left join a on a.dw = b.namegroup by b.name

order by b.name

;在oracle下執行可以,sql server沒試過

oracle中如何查詢資料表中重複的資料

大話殘劍 可以用分組函式統計,例如在表test中查詢id欄位重複的資料,查詢結果中id是重複的資料值,count 是重複的次數。create table test id number,name varchar2 20 insert into test values 1,a insert into t...

oracle中如何查詢資料表中重複的資料

根據感覺重複的欄位分割槽,加上一個row number,如果row number 1,那麼就找到了重複的資料了 select from select t.owner,t.table name,t.cnt,t.create time row number over partition by t.tab...

SQL SERVER自增資料表,如何查詢自增值的最大值

使用max函式即可。如 id name 1 張三 2 李四 3 王五 4 趙六 5 孫七 其中id是自增欄位。使用sql語句如下 select max id id from 表名 結果顯示為5,則5就是這個自增欄位的最大值。問題補充 比如,現在資料庫裡邊這個自增欄位存在的值是5,6可能已經被人刪掉了...