access 分組序號 ACCESS分組查詢

2021-10-12 23:22:03 字數 1169 閱讀 3086

滿意答案

vigorsun86

2013.04.21

採納率:59%    等級:12

已幫助:5747人

回答補充:

因為不知道利用乙個單錶怎樣區分班級資訊,所以我加了乙個字段 bj,

代表班級資訊。

修改後的表如下:

xh,yw,sx,wy,bj

學號,語文,數學,外語, 班級

access中的sql語句:

select t2.bj, iif(isnull(t1.語文及格人數),0,t1.語文及格人數)

from (select bj, count(*) as 語文及格人數

from chengji

where (yw >= 60)

group by bj) t1 right outer join

(select distinct bj

from chengji) t2 on t1.bj = t2.bj

sql2000中的sql語句:

select t2.bj as 班級, isnull(t1.語文及格人數, 0) as 語文及格人數

from (select bj, count(*) as 語文及格人數

from chengji

where (yw >= 60)

group by bj) t1 right outer join

(select distinct bj

from chengji) t2 on t1.bj = t2.bj

解決的思路:

問題原因:如果乙個班級的所有學生全部不及格,因為限定了where (yw >= 60),所以

這個班級的學生的記錄就不會被查詢出來,所以分組後,查詢結果中就沒有這個班級。

所以通過兩個表

select bj, count(*) as 語文及格人數

from chengji

where (yw >= 60)

group by bj

和select distinct bj

from chengji

進行 右外聯接 查詢,查詢結果中就會包含所有的班級,因為外聯接會產生 null 值,所以用 isnull 函式對 null 進行替換。

如果對您有幫助,請記得採納為滿意答案,謝謝!祝您生活愉快!

21分享舉報

RDLC報表 分組序號

1.rownumber group name 是按行每個分組重新1,2,3這樣來顯示的,如果需要按每個分組來顯示1,並且遞增,則需要通過自定義 來控制,在報表 屬性 裡插入 dim count as integer dim groupname as string public function gr...

Mysql分組查詢加上序號

今天老闆讓我刪除資料庫中多餘的資料 要求 每個使用者只保留當天的前四條記錄 最開始只是用userid進行了分組 但是怎麼再用時間進行分組呢 最開始我實在when後面加上and條件 但是發現結果不對 刪掉之後就可以了 select id from select r case when type a.u...

mysql分組排序加序號

參照 一 需求 新加乙個sort 字段,初始值為1,按照parentid分組新增sort值。根據原資料的parentid,postime排序,不同parentid值,sort 值從1開始重新增加 二 實現 1 update co test ast12 set sort 3 select 4t2.i ...