统计年龄段的人数(存储过程)

该博客介绍了一个SQL存储过程[UserAge],用于统计指定年龄段和部门ID的用户人数。过程接受年龄范围字符串、部门ID和客户ID作为参数,通过循环处理年龄范围并查询VDepartAdmin视图,计算每个年龄段的用户数量,并输出结果。
摘要由CSDN通过智能技术生成
USE [YunNanHuanWei]
GO
/****** Object:  StoredProcedure [dbo].[UserAge]    Script Date: 05/23/2018 13:24:43 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER proc [dbo].[UserAge]
(
--多个年龄段,18-30,30-40,40-50,50-60
@agestr nvarchar(500),
@departid  nvarchar(50),
@cusid nvarchar(50)
)
as
begin
declare @s nvarchar(50)
  CREATE TABLE #tt(
  [Number] int NOT NULL,
	[Age] [nvarchar](200) NOT NULL,
)
while(charindex(',',@agestr)<>0)
 begin

  --第一个','之前的字符串
  select @s=substring(@agestr,1,charindex(',',@agestr)-1)
  --判断部门是否为空
  if(@departid!='')
  begin
insert into #tt  select COUNT(*) as Number,@s+'岁' as Age from VDepartAdmin where year(getdate())-year(birthdate) 
>= substring(@s,1,charindex('-',@agestr)-1) and year(getdate())-year(birthdate) < substring(@s,charindex('-',@agestr)+1,2) and DepartRela
### 回答1: 好的,我可以回答您的问题。以下是C语言编写的统计各个年龄阶段的人数的代码: ```c #include <stdio.h> int main() { int age, count_child = 0, count_youth = 0, count_middle = 0, count_old = 0; printf("请输入一组数字,用空格隔开,代表每个人的年龄:\n"); while (scanf("%d", &age) != EOF) { if (age < 18) { count_child++; } else if (age >= 18 && age < 40) { count_youth++; } else if (age >= 40 && age < 60) { count_middle++; } else { count_old++; } } printf("18岁以下的人有%d个\n", count_child); printf("18岁到40岁之间的人有%d个\n", count_youth); printf("40岁到60岁之间的人有%d个\n", count_middle); printf("60岁及以上的人有%d个\n", count_old); return 0; } ``` 您可以在程序中输入年龄,以空格隔开,程序将统计出年龄在不同阶段的人数并输出。希望能够帮到您。 ### 回答2: 对于这个问题,我将使用C语言编写一个程序来统计不同年龄阶段的人数。以下是代码示例: ```c #include <stdio.h> int main() { int age, count1=0, count2=0, count3=0, count4=0; printf("请输入人数的年龄(以-1结束):\n"); while (1) { printf("年龄:"); scanf("%d", &age); if (age == -1) { break; } if (age >= 0 && age <= 18) { count1++; } else if (age >= 19 && age <= 35) { count2++; } else if (age >= 36 && age <= 50) { count3++; } else if (age >= 51) { count4++; } } printf("0-18岁的人数:%d\n", count1); printf("19-35岁的人数:%d\n", count2); printf("36-50岁的人数:%d\n", count3); printf("51及以上岁的人数:%d\n", count4); return 0; } ``` 这个程序首先会提示用户输入人数的年龄,并且以-1来表示输入结束。然后,通过一个while循环,不断读取用户输入的年龄,根据年龄的范围累加计数器的值。在循环结束后,程序会打印出不同年龄阶段的人数。 希望这个回答对你有帮助! ### 回答3: 要统计各个年龄阶段的人数,可以使用C语言编写一个程序来实现。具体步骤如下: 1. 定义一个结构体来存储每个人的信息,包括姓名和年龄。 ```c typedef struct { char name[50]; int age; } Person; ``` 2. 声明一个数组来存储多个Person结构体,表示所有人的信息。 ```c Person people[100]; ``` 3. 声明一个整数数组来统计各个年龄阶段的人数。 ```c int count[5] = {0, 0, 0, 0, 0}; ``` 4. 通过用户输入来录入人员信息,直到输入结束为止。 ```c int i = 0; while (1) { printf("请输入姓名和年龄(以空格分隔): "); scanf("%s %d", people[i].name, &people[i].age); if (people[i].age == -1) { break; } i++; } ``` 5. 根据每个人的年龄,将其分类到相应的年龄阶段里,并统计人数。 ```c for (int j = 0; j < i; j++) { if (people[j].age >= 0 && people[j].age < 20) { count[0]++; } else if (people[j].age >= 20 && people[j].age < 30) { count[1]++; } else if (people[j].age >= 30 && people[j].age < 40) { count[2]++; } else if (people[j].age >= 40 && people[j].age < 50) { count[3]++; } else if (people[j].age >= 50) { count[4]++; } } ``` 6. 输出各个年龄阶段的人数。 ```c printf("0-20岁的人数:%d\n", count[0]); printf("20-30岁的人数:%d\n", count[1]); printf("30-40岁的人数:%d\n", count[2]); printf("40-50岁的人数:%d\n", count[3]); printf("50岁以上的人数:%d\n", count[4]); ``` 通过以上步骤,就可以编写一个C语言程序来统计各个年龄阶段的人数
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值