求sql语句

Oo云 2011-02-17 05:49:24
数据 有
公司名,本月总量,去年同期,上月总量,全年累计,
这样的数据能放在一个sql里面写出来么?
说一下思路,或简单的给个sql就可以了。
如果要很多sql语句能计算出来
又怎么能在一个table里显示出来呢?
求讲解!
...全文
90 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
打一壶酱油 2011-02-18
  • 打赏
  • 举报
回复
临时表,子查询,union 等等
叶子 2011-02-17
  • 打赏
  • 举报
回复
嵌套子查询就可以了。
AcHerat 2011-02-17
  • 打赏
  • 举报
回复

declare @date datetime
set @date = '2011-1-1' --查询的日期

select companyName,sum(total)gdtotal,
(select sum(total) from bs_company
where companyid = t.companyid and convert(varchar(6),createdate,112) = convert(varchar(6),datediff(yy,-1,@date),112))qu_yeartotal,
(select sum(total) from bs_company
where companyid = t.companyid and convert(varchar(6),createdate,112) = convert(varchar(6),datediff(mm,-1,@date),112))shang_monthtotal,
(select sum(total) from bs_company
where companyid = t.companyid and convert(varchar(4),createdate,112) = convert(varchar(4),@date,112))quan_yeartotal
--上边的全年这里把年数搞错了。
from bs_company t
where convert(varchar(6),createdate,112) = convert(varchar(6),@date,112)
group by companyName
AcHerat 2011-02-17
  • 打赏
  • 举报
回复

declare @date datetime
set @date = '2011-1-1' --查询的日期

select companyName,sum(total)gdtotal,
(select sum(total) from bs_company
where companyid = t.companyid and convert(varchar(6),createdate,112) = convert(varchar(6),datediff(yy,-1,@date),112))qu_yeartotal,
(select sum(total) from bs_company
where companyid = t.companyid and convert(varchar(6),createdate,112) = convert(varchar(6),datediff(mm,-1,@date),112))shang_monthtotal,
(select sum(total) from bs_company
where companyid = t.companyid and convert(varchar(4),createdate,112) = convert(varchar(4),datediff(yy,-1,@date),112))quan_yeartotal
from bs_company t
where convert(varchar(6),createdate,112) = convert(varchar(6),@date,112)
group by companyName
Oo云 2011-02-17
  • 打赏
  • 举报
回复
3q 各位 我先试下 看看
AcHerat 2011-02-17
  • 打赏
  • 举报
回复

/**
*这些可以放在一个查询里的,就是凑数据了,估计你要做报表还是什么的吧!
*你可以写成类似下边的格式:
*/
declare @date datetime
set @date = '2011-1-1' --查询的日期

select companyName,sum(total)gdtotal,
(select sum(total) from bs_company
where companyid = t.companyid and convert(varchar(6),createdate,112) = convert(varchar(6),datediff(yy,-1,@date),112))qu_yeartotal,
(select sum(total) from bs_company
where companyid = t.companyid and convert(varchar(6),createdate,112) = convert(varchar(6),datediff(mm,-1,@date),112))shang_monthtotal
from bs_company t
where convert(varchar(6),createdate,112) = convert(varchar(6),@date,112)
group by companyName
快溜 2011-02-17
  • 打赏
  • 举报
回复

select 公司名,
本月总量=(select sum(量) from tb where date=本月 and 公司名=a.公司名),
去年同期=(select sum(量) from tb where date=去年本月 and 公司名=a.公司名),
上月总量=(select sum(量) from tb where date=add(mm,-1,本月) and 公司名=a.公司名),
全年累计=(select sum(量) from tb where date=全年 and 公司名=a.公司名)
from tb a group by 公司名
----子查询里条件,楼主自己看看,供参考。
Andy__Huang 2011-02-17
  • 打赏
  • 举报
回复
要用到子查询,
子查询1:本月子查询
子查询2:上月子查询
子查询3:去年同期本月子查询
子查询4:全年子查询

以上子查询都出来后通过分组汇总,用公司代码把它们关联起来就得到你想要的结果


27,579

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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