ACCESS的问题

来源:百度知道 编辑:UC知道 时间:2024/05/31 15:27:11
姓名 语文 数学 英语 政治
A1 80 50 35 65
A2 40 58 60 32
A3 64 82 78 95
A4 40 32 25 56
A5 65 78 68 35

请问在ACCESS里面用SQL语句来编写查询其中2科或者2科以上的及格人数应该怎么写?
SELECT * FROM 表名 WHERE IIF(语文>=60,1,0)+IIF(数学>=60,1,0)+IIF(英语>=60,1,0)+IIF(政治>=60,1,0)>=2
请问其中>=60,1,0后面的1和0代表的什么?
还有就是我查找的是2科以上及格的人数,并不是有哪些人有2科以上及格,是统计总的人数

我的机器没有ACCESS系统,公司购买的OFFICE是标准版,但是我想可能ACCESS的SQL支持IIF函数,利用IIF函数可以实现你的目的,比如:
SELECT 姓名, IIF(语文>=60,1,0) FROM 表名
这样的查询结果为
A1 1
A2 0
A3 1
A4 0
A5 1
后面的0和1就是代表及格不及格,那么你需要的SQL如下:
SELECT * FROM 表名 WHERE IIF(语文>=60,1,0)+IIF(数学>=60,1,0)+IIF(英语>=60,1,0)+IIF(政治>=60,1,0)>=2

希望你测试以后补充一下结果。

不太容易用简单的SQL语句实现,单有个笨办法:
SELECT * FROM 成绩表
WHERE
(语文>=60 AND 数学 >=60)
OR
(语文>=60 AND 英语 >=60)
OR
(语文>=60 AND 政治 >=60)
OR
(数学>=60 AND 英语 >=60)
OR
(数学>=60 AND 政治 >=60)
OR
(英语>=60 AND 政治 >=60)

SELECT * FROM 表名 WHERE IIF(语文>=60,1,0)+IIF(数学>=60,1,0)+IIF(英语>=60,1,0)+IIF(政治>=60,1,0)>=2