㈠ sql语句,根据存款明细更新账户余额
运行前做好账户信息表的备份
看字段类型应该像是oracle,就按oracle的写法给你写了
updatet_accountaseta.balance=(selectb.trans_amountfrom
(selectaccount_no,sum(trans_amount)trans_amountfromt_depositorgroupbyaccount_no)b
wherea.account_no=b.account_no)anda.account_noin(selectaccount_nofromt_depositor)
如果你数据量特别大的话,可能执行效率不会高
㈡ SQL查询统计某表的男女各个人数
select s.sex,count(s.sex) from student s GROUP BY sex;
GROUP BY 语句
GROUP BY 语句用于结合合计函数,根据一个或多个列对结果集进行分组。
测试student表纪录如下图,根据自己需求增删字段。
student s ,s是自己为student表定义的别名,count()为统计的人数。
拓展资料:
SQL GROUP BY 语法:
SELECT column_name(列名), aggregate_function(column_name) (函数名) FROM table_name(表名) WHERE column_name operator value GROUP BY column_name
㈢ sql语句如何查询两个值之间的差
工具/材料:Management Studio。
1、首先在桌面上,点击“Management Studio”图标。
㈣ Microsoft SQL Server 2005 中如何实现差额优先匹配
按照你的数据,我随便写了一个,你看一下,并且我这已经测试过,对于你上述数据没问题的
建表及数据
createtablet
(orderidvarchar(1),
flagint,
xqslint,
kyslint)
insertintotvalues('D',1,10,NULL)
insertintotvalues('C',2,20,NULL)
insertintotvalues('B',3,30,NULL)
insertintotvalues('A',4,40,NULL)
执行以下
declare@countint
set@count=50
declarecur_ccursorforselectflag,kysl,xqslfromtorderbyflag
declare@xqslint
declare@flagint
declare@kyslint
declare@count1int
opencur_c
FETCHNEXTFROMcur_cinto@flag,@kysl,@xqsl
while@@FETCH_STATUS=0
begin
set@count1=@count-@xqsl
if@count1>=0
begin
updatetsetkysl=xqslwhereflag=@flag
set@count=@count-@xqsl
end
elseif@count1<=0and@count<=@xqsl
begin
updatetsetkysl=@countwhereflag=@flag
set@count=0
end
else
begin
updatetsetkysl=0whereflag=@flag
end
fetchnextfromcur_cinto@flag,@kysl,@xqsl
end
closecur_c
deallocatecur_c
最终结果
㈤ 要求用一条SQL语句查询出每个用户ID,交费次数及所交的个人交费金额
交费次数:select 用户ID,COUNT(*) as 交货次数,sun(交费金额) as 交费金额 FROM Info where 用户ID=John group by 用户ID
㈥ 用SQL语言从现有的数据库里根据性别属性分别统计出男女相应的一个属性里各类型的数量
现过几次 2出现过几次
select count(1) from table1 where A=1;
select count(1) from table1 where A=2;
select [1]=count(case when A=1 then 1 else null end),[2]=
(case when A=1 then 1 else null end) from table1
A为1、B为2的情况几次,
select count(1) from table where a=1 and b=2
当A为1,B出现几次 等等
select count(distinct B ) from table1 where A=1
㈦ 使用SQL语句程序计算学生表中男女平均年龄之差
SELECT (SELECT avg([年龄]) FROM [表] WHERE [性别] = '男') - (SELECT avg([年龄]) FROM [表] WHERE [性别] = '女') as SubValue
㈧ 用SQL命令创建名为"男女人数"的查询,查询男生,女生人数分别是多少
1.2.3.4创建表和主外键关系,5加一个where条件6排序order by "日期"desc 7分组查询group by,另外求记录数用count(*)函数 8分组后差平均值,用avg("平均身高"),9修改update 表set 英语成绩=英语成绩*(1+0.1),10连接查询,先按学生分组,然后总分sum(),平均分avg()11,按科目分组12,连接查询13,连接查询
㈨ SQL语句计算男女员工各占比例。
假设表员工档案里有性别、姓名两个字段
select count(*) as 员工总数,sum(case when 性别=男 then 1 else 0 end) 男员工数,sum(case when 性别=男 then 1 else 0 end)/nullif(count(*),0) 男所占比例,sum(case when 性别=女 then 1 else 0 end) 女员工数,sum(case when 性别=女 then 1 else 0 end) /nullif(count(*),0)女所占比例
from 员工档案
你自己试试看吧
楼上的写的不错,但是最好注意一些除0问题,要是张空表会报除0错误的。
㈩ SQL计算语句请求问题
使用下面写法就行了,其实把男生数和女生数的case when 相比就行了。
SELECT Convert(VARCHAR(100), Zixrq, 23) AS 日期,
SUM(CASE WHEN Xingb = '女' THEN 1 ELSE 0 END) AS 女生数,
SUM(CASE WHEN Xingb = '男' THEN 1 ELSE 0 END) AS 男生数,
SUM(CASE WHEN Xingb = '男' THEN 1 ELSE 0 END) / SUM(CASE WHEN Xingb = '女' THEN 1 ELSE 0 END) AS 男女比例
FROM Huiyuan
WHERE Zixrq >= '2012-11-23'
AND Zixrq <= '2012-12-3'
GROUP BY Convert(VARCHAR(100), Zixrq, 23)
帝狼神我好像答过你的问题