1樓:匿名使用者
由於sql語言處理問題的方式是面向記錄"集合"的。解決排名這類問題對於sql來說確實頭疼,分組排名就更不用說了! 為了解決排名問題大型資料庫系統為使用者提供了rank、rownumber等函式,但是access不支援排名、開窗等這類函式,一般建議用程式設計方式解決,例如vba等。
這個問題確實不好回答。看到樓主就同一問題已經提問幾次了,今天嘗試用sql解決如下,供參考
首先假設資料結構如下:
students(sid,name,class)
scores(sid,score)
學生表與分數表基於sid建立一對多參照完整性
檢索出所有班級與每個學生的學號、姓名、分數按班級、得分排序
select a.class,b.sid,a.name,b.score from
students a,scores b where a.sid=b.sid
order by a.class,b.score desc;
檢索出每個班級前三名的學生學號、姓名和得分,按班級升序、得分降序排名
實現sql**
select a.class,a.sid,a.name,a.score from
(select a.class,a.name,b.
sid,b.score from students a,scores b where a.sid=b.
sid)a where a.score in(
select top 3 b.score from (select distinct class,score from scores)b
where b.class=a.class order by b.score desc
) order by a.class,a.score desc;
執行結果
從上述**來看實現這樣的效果已經很麻煩,至於學生班名次,access只能藉助程式設計手段了。
2樓:揭戈雅
access查詢幫實現
access中有2個表,想找出2個表不一樣的資料,sql查詢怎麼寫?
3樓:飛揚跋扈
select * from x1 where id not in(select a.id from x1 a left join x2 b on a.ph = b.ph)
解釋下,先查出所有項都一樣的,x1表的id然後id不再這裡的就是不同的嘍
4樓:
先要確定1個或者幾個索引欄位,如果是多個欄位的話先連線起來
select * from 表1 where 表1.欄位1 & 表1.欄位2 not in (select 欄位1&欄位2 from 表2)
5樓:匿名使用者
1、select * from t2 where id not in (select id from t1)
2、select * from t2 where not exists(select * from t1 where t1.id=t2.id)
3、select t2.* from t2 left join t1 on t2.id=t1.id where t1.id is null
三種方法都得不到所想要的不同內容的結果(vb程式設計,語法正確,結果為空),崩潰了。
我有表1=standard_data1 ,表2=standard_data2,兩個表裡面只有1列資料為msisdn,下面sql語句沒法找到不同的內容。
select * from standard_data1 where standard_data1.msisdn not in(select standard_data2.msisdn from standard_data2)
select * from standard_data1 where not exists(select * from standard_data2 where standard_data1.msisdn=standard_data2.msisdn)
更新:distinct是關鍵,在select後面加上這個就成功了。另外,最快的查詢方法是下面這2條,之所以是2條因為要找兩次才能找全互相不同的資料:
select distinct standard_data1.* from standard_data1 left join standard_data2 on standard_data1.msisdn=standard_data2.
msisdn where standard_data2.msisdn is null
select distinct standard_data2.* from standard_data2 left join standard_data1 on standard_data2.msisdn=standard_data1.
msisdn where standard_data1.msisdn is null
找相同內容的語句就很容易就出正確的結果了,如下:
select distinct standard_data1.* from standard_data1 inner join standard_data2 on standard_data1.msisdn=standard_data2.
msisdn
6樓:友冬卉
用vlookup函式很快就能找出來。
7樓:匿名使用者
怎麼會呢
select * from 表1 where 表1比較欄位 not in (select 表2比較欄位 from 表2)
8樓:匿名使用者
select * from 1,2 where 1.name<>2.name
sql定義中不等於怎麼寫,SQL定義中不等於怎麼寫
sql中有兩種方式表示不等於,一種是 不含引號 另一種是 不含引號 用法是一樣的。補充 1 不等於 這四個符號據說都可以在oracle中表示不等於,但是試了之後發現 是可以的,不行,需要注意的是,只有 是標準的sql語法,可以移植,其他的都是oracle平臺的特性,移植性較差,所以開發中,儘量使用 ...
在access中select case a表示什麼意思,str又表示什麼意思,求助,如
字串 型別說明符 a 變數a即是字串變數 我們定義一 抄個變數時襲可以直接指明變數型別,也可以用型別說明符來說明。型別與型別說明符的對應關係 如下 整型 長整型 單精度 雙精度 貨帀型 以及字元型 例如 定義的變數a為整型,可以dim a as integer 與dim a 二種,它們是等價的。ac...
sql語句該怎麼寫,SQL語句該怎麼寫
不知道理解的對不對,有問題再問我吧 create table button button id varchar 10 gocreate table user user id varchar 10 gocreate table user button user id varchar 10 button...