求SQL语句,实现统计表的计算!求高手

作者&投稿:杭省 (若有异议请与网页底部的电邮联系)
用sql查询语句实现一个统计表,跪求帮助新手啊~

select DIVORCE_REASON ,离婚原因统计数目,离婚原因统计数目/SUM(离婚原因统计数目) as 百分比
from
(select DIVORCE_REASON,,count(*) as 离婚原因统计数目
from table
group by DIVORCE_REASON
)
group by DIVORCE_REASON

我去....为什么时间主键啊..要是在同一天有多条数据怎木办呢..

select a.[管护类型],sum(isnull(b.[林班面积],0)) [面积] from [表A] a
left join [表B] b on charindex(','+convert(varchar,b.[林班号])+',',','+a.[相关林班号]+',')>0
group by a.[管护类型]

结果如下:



CREATE TABLE #A (A CHAR(10),B CHAR(10))
INSERT #A SELECT '1', '1,2'
INSERT #A SELECT '2', '1,3,4'
INSERT #A SELECT '3' , '2,3'
INSERT #A SELECT '1' , '3'

CREATE TABLE #B (A CHAR(10),B INT )
INSERT #B SELECT '1' , 3
INSERT #B SELECT '2' , 2
INSERT #B SELECT '3' , 3
INSERT #B SELECT '4' , 4
INSERT #B SELECT '5' , 5

---------------1.先转换#a表
select identity(int,1,1) as id ,* into #c from #a

create table #d (id CHAR(10),B CHAR(10) )

declare @a int
declare @b int
select @a=min(id) from #c
select @b=max(id) from #c
while (@a<=@b)
begin
declare @c int
select @c= len(b) from #c where id=@a

declare @s varchar(1000)
select @s= substring(b,1,@c) from #c where id=@a
declare @sql varchar(8000)
set @sql='select col='''+replace(@s,',',''' union all select''')+''''
insert into #d (b)
exec (@sql)

update #d set id=@a where id is null

set @a=@a+1
end

select t1.a,t2.b into #e from #c t1, #d t2 where t1.id=t2.id
select t1.a, sum(t2.b) from #e t1 ,#b t2 where t1.b=t2.a group by t1.a

感觉如果你把它放在程序里面写
虽然麻烦了一点
但是不用搞的这么麻烦
当然并不是说sql不能写

你这个问题都问了好几遍了,有人给你解出来吗?
你这表A结构设计的极其不合理,起码的范式规则都不遵守

难点在表A和表B的连接上,可以使用 like 进行关联

select concat('管护类型', C.管护类型) 类型, sum(C.林班面积) 面积
  from (select A.管护类型, B.林班面积
          from A, B
         where concat(concat(',', A.相关林班号), ',') like
               concat(concat('%,', B.林班号), ',%')) C
 group by 管护类型


结果中的是面积,是面积和吗?


如何用SQL语句实现关系的三类完整性
1.实体完整性 CREATE TABLE Student (Sno CHAR(9) PRIMARY KEY, \/* 列级完整性约束条件*\/ Sname CHAR(20) UNIQUE, \/* Sname取唯一值*\/ Ssex CHAR(2));2.参照完整性 课程信息表c(cno,cname,cbook) cno为主码 学生选课表sc(sno,cno,grade) 其中sno,cno是外码 creat table...

sql语句如何统计一行数据的总数
使用累加 就需要用到聚合函数 sum(QTY)update 表 set QTY=(select sum(QTY) from 表 where LOT_NO not in('20130709014')) where LOT_NO='20130709014'---> 如果 LOT_NO 为 20130709014是最后一条记录,那么就满足你的要求,如果不是最后一条记录,就按照下面的操作去执行 首先 你要查到你...

统计各供应商所供各类商品的总数量用SQL语句?
select 供应商,商品类别,sum(数量)from 表名 group by 供应商,商品类别

SQL语句,统计子查询的总和。
直接晕掉。。。兄弟,好好学学sql哈 突然发现你们都不喜欢用别名 用别名sql多简洁啊 SELECT SUM(A.PRICE*B.QTY) as PRICE FROM STORAGE_IN_PRODUCT_M A ,SCANLOG_M B WHERE A.STORAGE_IN_ID = B.STORAGE_IN_ID AND A.PRODUCT_ID = B.PRODUCT_ID。

SQL语句 统计一个表中的数据,分三个阶段
SQL SERVER语法:WITH CTEAS( SELECT [地区], CASE WHEN([月租费]<=10) THEN '0-10' WHEN([月租费]<=20) THEN '10-20' ELSE '其他' END AS [月租费] FROM [账期表])SELECT [地区], ISNULL([0-10], 0) AS [0-10], ISNULL([10-20], 0) AS [10-20]...

如何用在MySQL中用sql语句将表1的内容统计成表2
本期我们用 MySQL 提供的 DBUG 工具来研究 MySQL 的 SQL 处理流程。起手先造个实例 这里得稍微改一下实例的启动文件 start,将 CUSTOM_MYSQLD 改为 mysqld-debug:重启一下实例,加上 debug 参数:我们来做一两个实验,说明 DBUG 包的作用:先设置一个简单的调试规则,我们设置了两个调试选项:...

用SQL语句统计第一张表,查询出第二张表
可以使用CASE WHEN函数 select t.组织,t.rng as 金额区间,sum(case t.月份 when 1 then t.金额 else 0 end) as [1月],sum(case t.月份 when 2 then t.金额 else 0 end) as [2月],sum(case t.月份 when 3 then t.金额 else 0 end) as [3月],sum(case t.月份 when 4 then...

sql语句求解答,统计不重复的个数
没有重名的情况下:select count(distinct 姓名) from table 有重名的情况(但是重名的人年龄不一样):select count(distinct(姓名,年龄)) from table 如果重名的人,年龄还一样,那这张表就不能只有这三行了。

SQL自动统计语句怎么写?
一般数据库中的表设计是如下:可通过SQL语句查询。初高中 年级 班级 姓名 是否有档案 备注 高中 一年 一班 张飞 TRUN 高中 一年 二班 李静 TRUN 高中 二年 一班 XX TRUN 高中 二年 一班 张飞 TRUN 高中 三年 一班 李静 TRUN 高中 三年 一班 XX FALSE 转学 高中 三年 二班 王五 TRUN 如:...

jdbc怎么实现对sql的统一拦截
ProxyConnection),该代理连接会拦截所有的SQL操作。3、在connect方法中返回一个代理连接,该代理连接会拦截所有的SQL操作。4、在拦截方法中,添加自定义的逻辑来记录、修改或阻止执行的SQL语句。5、通过使用自定义的JDBC驱动程序,替换应用程序中原有的JDBC驱动程序,从而实现对SQL的统一拦截。

武汉市18396573411: 求用sql最简练语句实现一个表的统计写法?
常枝雷赛: select count(*) from 表名 where 你的条件自己写吧,不难

武汉市18396573411: sql语句 统计表里记录的总和 -
常枝雷赛: 假设 表名为" 统计" 字段名为"金额" SELECT SUM(金额) FROM 统计

武汉市18396573411: 用SQL语句实现一个统计功能,请高手帮忙,不胜感激……
常枝雷赛: select col as A,count(1) as B from (select case A when '1' then 'A',when '2' then 'B' when '3' then 'C' when '4' then 'D' when '5' then 'E' when '6' then 'F' else null end as col from A union all select case A when '1' then 'A',when '2' then 'B' when '3' then '...

武汉市18396573411: sql语句统计查询结果数量怎么写? -
常枝雷赛: 可以通过count函数来实现. sqlOne:select * from tablename1 where id>5;此语句查询出来多条记录,之后看做一个新的表. sqlTwo:select conut(*) from (select * from tablename1 where id>5) as tablename2;此语句即可查询出来统计的记录条...

武汉市18396573411: SQL语句统计每天、每月、每年的销售总额 -
常枝雷赛: 1、每年select year(ordertime) 年, sum(Total) 销售合计from 订单表group by year(ordertime)2、每月select year(ordertime) 年, month(ordertime) 月, sum(Total) 销售合计from 订单表group by year(ordertime),month(ordertime3、每...

武汉市18396573411: 一个统计的sql写法
常枝雷赛: SELECT U, SUM(DECODE(V, '1', COUN)) u1, SUM(DECODE(V, '2', COUN)) u2, SUM(DECODE(V, '3', COUN)) u3 FROM ((SELECT 'a' U, A V, COUNT(1) COUN FROM ABC_T GROUP BY A) UNION ALL (SELECT 'b' U, B V, COUNT(1) COUN FROM ABC_T GROUP BY B) UNION ALL (SELECT 'c' U, C V, COUNT(1) COUN FROM ABC_T GROUP BY C)) GROUP BY U

武汉市18396573411: 跪求sql如何实现总数的统计,例如某一个收费员一个月收的总户数总钱数?胡乱找个例子做多谢!!! -
常枝雷赛: --计算收费员当月的总数 select 收费员,sum(钱) as 总数 from 收费表 where convert(varchar(10),收费日期,121)=convert(varchar(10),getdata(),121) group by 收费员

武汉市18396573411: 使用sql语句计算百分比 -
常枝雷赛: 1、若针对每行求百分比: select SA/TotelTime ,SB/TotelTime ,SC/TotelTime ,SD/TotelTime ,SE/TotelTime from 表名 . 2、若是对总计后的值求百分比: select sum(SA)/sum(TotelTime) ,sum(SB)/sum(TotelTime) ,sum(SC)/sum(TotelTime) ,sum(...

武汉市18396573411: 求助:SQL语句统计表的信息 -
常枝雷赛: 不知道你什么数据库如果是 Oracle 的话. SELECT brand_id , count(color), count(size) , WMSYS.WM_CONCAT(color) as color, WMSYS.WM_CONCAT(size) as sizeFROM productGROUP...

武汉市18396573411: 如何写统计的sql语句?
常枝雷赛: sum(case when aa = 1 then 1 else 0),select field1,sum(case when aa = 0 then 1 else 0), sum(case when aa = 2 then 1 else 0), count(fild1)from tablenamegroup by field1如许机能可能不是很好,然则如不雅不须要在一个sql中解决,那就随便你怎么写了,可以用视图.

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网