一个简单的sql查询问题,熟悉的请进。

zgh1688 2002-05-18 11:12:22
一个数据库里有向个字段:出生日期、性别、在职等。
有什么办法可一次性查询出:
0-5岁的人有多少、0-5岁的人的男性有多少、0-5岁的在职有多。
6-10岁的人有多少、11-20岁的人的男性有多少、0-5岁的在职有多。
不知道用什么办法比较好,我想了一个办法不好,对sql语法不太熟,想请教朋友们,在线等侍。
...全文
61 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
a12345 2002-05-19
  • 打赏
  • 举报
回复
其实这样固定的还好查一点
要是动态的话,是不是比较有难度?
hycao 2002-05-19
  • 打赏
  • 举报
回复
还是写存储过程比较好。
myclarion 2002-05-18
  • 打赏
  • 举报
回复
select count(出生日期) as aa,(select count(出生日期) from 表名 where 年龄>=0 and 年龄<5 and 性别='男') as bb,
(select count(出生日期) from 表名 where 年龄>=0 and 年龄<5 and 在职) as cc from 表名 where 年龄>=0 and 年龄<5
注:
其中表名都是指的同一个表的名称,别名aa 求的是 0-5岁的人数,bb求的是0-5岁的男性人数,cc求的是0-5岁的在职人数....依此类推,日期字段的内容要经过运算才得到年龄,在此就不多说了
lxpbuaa 2002-05-18
  • 打赏
  • 举报
回复
第二个“人数一”改为“人数二”
lxpbuaa 2002-05-18
  • 打赏
  • 举报
回复
“人数一“后加逗号
lxpbuaa 2002-05-18
  • 打赏
  • 举报
回复
select Count(*) 总人数,
(select Count(*) from TableName where Age<5 and Sex='男') 人数一
(select Count(*) from TableName where Age<10 and Sex='男') 人数一
from TableName

大概是这样,自己把条件整理一下即可。


—————————————————————————————————
MaximStr := '宠辱不惊,看庭前花开花落,去留无意;
毁誉由人,望天上云卷云舒,聚散任风。';
if Not Assigned(I) then
I := TI.Create(Nil);
I.Maxim := MaximStr;
—————————————————————————————————


       
caijf 2002-05-18
  • 打赏
  • 举报
回复
似乎你的问题不清楚啊,0-5岁的还有在职的???
madyak 2002-05-18
  • 打赏
  • 举报
回复
一个一个的写不就行了?
zjqyb 2002-05-18
  • 打赏
  • 举报
回复
1.写一个存储过程
2.自己
while not eof do
{
doit;
next;
}

5,391

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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