最高100分!数据库查询语句!帮忙看看!在线等!解决后,马上结贴给分!

oran535 2005-05-03 06:47:54
数据库里有2张表。一张是A 一张是B
A里存着学校里所有的院系!(在字段Y里)
B里存着学校所有的学生。而其中有一个字段就是“院系”
现在要构建SQL语句来查寻以下项目!
一、学校总人数 学校男生总数 学校女生总数
二、各院系总人数 各院系男生总数 各院系女生总数
怎么构建语句啊?
能不能把表A的字段Y读出来,(以数组的形式)
然后在把从A里读出的数据作为查询表B的条件啊?
具体SQL怎么写啊?
...全文
182 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
qiqunet 2005-05-04
  • 打赏
  • 举报
回复



这个人:oran535 ()

想不说他不是SB都不行呢,真替上面那位两个星的兄弟鸣冤啊!



richwong 2005-05-03
  • 打赏
  • 举报
回复
无语............
zzhhp 2005-05-03
  • 打赏
  • 举报
回复
学校总人数: select count(*) from B
学校男生总数: select count(*) from B where sex=0
学校女生总数: select count(*) from B where sex=1
各院系总人数: select y,count(*) from B group by y
各院系男生总数: select y,count(*) from B where sex=0 group by y
各院系男生总数: select y,count(*) from B where sex=1 group by y
qiqunet 2005-05-03
  • 打赏
  • 举报
回复

回复人: boythl(沙漠孤狐【若你的问题得到解决,请尽快结贴,谢谢】) ( ) 信誉:100 2005-05-03 22:28:00 得分: 0

qiqunet(瑞旗·广东) 无聊,RENZ一个!鉴定完毕!

///////////////////////////////////////////

你有什么能力做什么鉴定啊?拿到工作证了没有?show出来看一看

又一个超级狂人!

超人也好啦,超级狂人也一样,其简称都是: SB



boythl(沙漠孤狐【若你的问题得到解决,请尽快结贴,谢谢】)
——一个整天就渴望别人结贴给他分的SB,

写点有意义的内容,解决楼主的问题才是实在的呢,没做点贡献,就想着别人结贴,给你吹水分

我说你穿的这五条三角裤都是凭做 鉴定 得来的?脸红不脸红呀?



我虽然绕着湾子骂了 水晶剑锋 ,但我内心里对他依然是佩服的,最起码他是捧着一颗乐于助人的心来回答问题的。

而你,从你的签名和唯一的回复中就看得出你的企图了,面对你,我除了鄙视,还能留下些什么印象?




jarraytan 2005-05-03
  • 打赏
  • 举报
回复
qiqunet(瑞旗·广东) 无聊,RENZ一个!鉴定完毕!
华之瓯越 2005-05-03
  • 打赏
  • 举报
回复
UP。。。
orah 2005-05-03
  • 打赏
  • 举报
回复
<!--#include file="top.htm"-->

<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%>
<%Response.Buffer=True%>
<%
Dim db,ConnStr
ConnStr="Dbq="&Server.Mappath("data/database.mdb")&";Driver={Microsoft Access Driver (*.mdb)}"
Set db=Server.CreateObject("ADODB.Connection")
db.Open ConnStr
%>



<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>咸宁学院学生信息查询系统===各院系学生情况一览</title>
<style>
<!--
.menuskin {
BORDER: 1px solid #666666; VISIBILITY: hidden; POSITION: absolute;
BACKGROUND-COLOR:#EFEFEF;
background-image:url('img/dvmenubg3.gif');
background-repeat : repeat-y; font-style:normal; font-variant:normal; font-weight:normal; font-size:12px; font-family:Verdana
}
.tableBorder1 {WIDTH: 98%; }
.tableBorder {
BORDER-RIGHT: #183789 1px solid; BORDER-TOP: #183789 1px solid; BORDER-LEFT: #183789 1px solid; WIDTH: 98%; BORDER-BOTTOM: #183789 1px solid; BACKGROUND-COLOR: #ffffff
}
TH {
FONT-WEIGHT: bold; FONT-SIZE: 12px; BACKGROUND-IMAGE: url('img/admin_bg_1.gif'); COLOR: white; BACKGROUND-COLOR: #4455aa
}
TD {
FONT-SIZE: 12px
}
TD.forumRow {
PADDING-RIGHT: 3px; PADDING-LEFT: 3px; BACKGROUND: #F1F3F5; PADDING-BOTTOM: 3px; PADDING-TOP: 3px
}
TD.bodytitle {
BACKGROUND-IMAGE: url('img/admin_bg_2.gif')
}
A {
COLOR: #000000; TEXT-DECORATION: none
}
.helplink {
FONT: 10px verdana,arial,helvetica,sans-serif; CURSOR: help; TEXT-DECORATION: none
}
TD.forumRowHighlight {
PADDING-RIGHT: 3px; PADDING-LEFT: 3px; BACKGROUND: #E4EDF9; PADDING-BOTTOM: 3px; PADDING-TOP: 3px
}
.copyright {
PADDING-RIGHT: 1px; BORDER-TOP: #6595d6 1px dashed; PADDING-LEFT: 1px; PADDING-BOTTOM: 1px; FONT: 11px verdana,arial,helvetica,sans-serif; COLOR: #4455aa; PADDING-TOP: 1px; TEXT-DECORATION: none
}
-->
</style>
</head>

<body>
<table class="tableBorder" cellSpacing="1" cellPadding="3" align="center" border="0" id="table12">
<tr>
<th height="25" colspan="4" class="tableHeaderText">咸宁学院学生信息查询系统===各院系学生情况一览</th>
</tr>
<tr>
<td align="center" width=25% class="forumRow">院系名称</td>
<td align="center" width=25% class="forumRow">院系总人数</td>
<td align="center" width=25% class="forumRow">院系男生总数</td>
<td align="center" width=25% class="forumRow">院系女生总数</td>
</tr>
</table>
<%
dim rs,strSql,aRs,astrSql,bRs,bstrSql,cRs,cstrSql
Set Rs=Server.CreateObject("ADODB.Recordset")
strSql="Select * From yuan"
Rs.Open strSql,db,1,1
dim Y
Do While Not rs.Eof
Y=rs("yuan")
'******************************************************原系总人数
Set aRs=Server.CreateObject("ADODB.Recordset")
astrSql="Select * From student where 院系 Like '%" & Y & "%'"
aRs.Open astrSql,db,1,1
'******************************************************原系女生人数
Set bRs=Server.CreateObject("ADODB.Recordset")
bstrSql="Select * From student where 院系 Like '%" & Y & "%' and 性别='女'"
bRs.Open bstrSql,db,1,1
'******************************************************原系男生人数
Set cRs=Server.CreateObject("ADODB.Recordset")
cstrSql="Select * From student where 院系 Like '%" & Y & "%' and 性别='男'"
cRs.Open cstrSql,db,1,1


%>
<table class="tableBorder" cellSpacing="1" cellPadding="3" align="center" border="0" id="table12">
<%
Response.Write "<tr>"
Response.Write "<td align=center width=25% class=ForumrowHighlight><font color=#FF0000>" & rs("yuan") & "</font></td>"
Response.Write "<td align=center width=25% class=ForumrowHighlight><font color=#FF0000>" & ars.RecordCount & "</font></td>"
Response.Write "<td align=center width=25% class=ForumrowHighlight><font color=#FF0000>" & crs.RecordCount & "</font></td>"
Response.Write "<td align=center width=25% class=ForumrowHighlight><font color=#FF0000>" & brs.RecordCount & "</font></td>"
Response.Write "</tr>"

%>
</table>

</body>
<%
rs.MoveNext
Loop

Rs.Close
Set Rs=Nothing

aRs.Close
Set aRs=Nothing

bRs.Close
Set bRs=Nothing

cRs.Close
Set cRs=Nothing

%>

</html>
qiqunet 2005-05-03
  • 打赏
  • 举报
回复
回复人: sjjf(水晶剑锋) ( ) 信誉:100 2005-05-03 20:28:00 得分: 0


技术讨论不要带私人感情。说得不明白可以说明白。没必要骂人。

//////////////////////////////////////////////


呵,兄台真神人也!

在这个论坛中没人人骂人啊?兄台怎么能洞察到有人在骂人?

哦,其实也很正常,兄台能洞楼主的意思,这么善解人意,当然如果有人在骂人的话,是怎么也逃不过兄台的火眼金睛的咯。

哎呀,或许还真有人在骂人呢?
“SB一个”是谁说的?

好家伙,请问SB是什么意思?

我问了一个英文老师,Miss Chen说“That is the short spelling of "Super Boy"”

什么是"Super Boy"? 比如某些人凭着蛛丝马迹的信息就能猜到别人全部的思想过程,那么这个人就是“超人”了,英文写法就是"Super Boy",简称“SB”

兄台真SB一个!





hhjjhjhj 2005-05-03
  • 打赏
  • 举报
回复
一: SELECT count(*) AS 学校总人数, (select count(*) from B where sex='男') AS 学校男生总数, (select count(*) from B where sex='女') AS 学校女生总数 FROM B


二: SELECT A.Y, (select count(B.学生) from B WHERE B.院系=A.Y) AS 各院系总人数 FROM A

(男生女生自己加上去)
sjjf 2005-05-03
  • 打赏
  • 举报
回复
技术讨论不要带私人感情。说得不明白可以说明白。没必要骂人。

看题意应该是这个样子的,A表存放的是 院系名称和院系代码
B表中存放 "院系" 应该是 院系代码
这样的设计是为了减少数据存储空间,和修改时候的方便,院系名称 可能会长达十几个字节 ,
而院系代码不超过4个字节, 每一个学生都要重复一遍这样的名称的话,
这个空间的开销是不能忽视的,当然虽然现在的硬盘便宜了,但是也不要浪费,节省和懒惰一向是程序员的美德。
同时在修改的时候也很麻烦,每一个涉及被修改的院系的学生的资料都要修改一遍。

搂主也应当把表结构贴出来,至少关键的部分的字段应该给出充分的描述。



orah 2005-05-03
  • 打赏
  • 举报
回复
<%
dim rs,strSql,aRs,astrSql
Set Rs=Server.CreateObject("ADODB.Recordset")
strSql="Select * From yuan"
Rs.Open strSql,db,1,1
dim Y
Do While Not rs.Eof
Y=rs("yuan")
Set aRs=Server.CreateObject("ADODB.Recordset")
astrSql="Select * From student where 院系 Like '%" & Y & "%'"
aRs.Open astrSql,db,1,1
Response.Write ""&rs("yuan")&"" & ars.RecordCount & "人<br>"
rs.MoveNext
Loop

%>
qiqunet 2005-05-03
  • 打赏
  • 举报
回复

/////////////////////////////////////////////////////
B里存着学校所有的学生。而其中有一个字段就是“院系”
现在要构建SQL语句来查寻以下项目!
一、学校总人数 学校男生总数 学校女生总数
二、各院系总人数 各院系男生总数 各院系女生总数
///////////////////////////////////////////////////////


说得不明不白,根据所给条件,根本不足以求得你的所需,最起码:什么样子的数据表示男生?又用什么来表示女生?有没有这样一个字段来表示男生或女生?

还是你早已把男生数、女生数写到你的 A 表中去了?

既然 B 表中含有表示 院系 的字段,那么你要求什么男生数女生数,又关 A 表什么事?

SB一个!


大圆镜智1222 2005-05-03
  • 打赏
  • 举报
回复
学校总人数: select count(*) from B
学校男生总数: select count(*) from B where sex=0
学校女生总数: select count(*) from B where sex=1
各院系总人数: select y,count(*) from B group by y
各院系男生总数: select y,count(*) from B where sex=0 group by y
各院系男生总数: select y,count(*) from B where sex=1 group by y
oran535 2005-05-03
  • 打赏
  • 举报
回复
B里有个院系!
select * form B where y="院系"
这样么?可是那个 where="????"中
????不要自己写,这些????可以从数据库里调要么?
比方说有个 中文 合 英语!
select * form B where y="YYY"
这里的YYY怎么样才可以现表示"中文"查询完毕 再附值为"英语"
richwong 2005-05-03
  • 打赏
  • 举报
回复
直接显示? 除非库就一行数据用 TOP 1来筛选

否则 条件内容你得看下库行数据得特征。比如 要直接显示 数学系 就

sql="select * form a where y="数学系""
oran535 2005-05-03
  • 打赏
  • 举报
回复
恩!可是是要直接显示的。而不要表单传入的! "&request(院系)&""
richwong 2005-05-03
  • 打赏
  • 举报
回复
sql="select * form a where y="&request(院系)&"" '匹配院系
dim y
y=rs("y")
sql="select * form b where 。。。。="&y&"" ’条件院系匹配B表查询

以此类推

28,406

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧