SQL计算问题?在线等

bezier1980 2003-09-19 02:03:07
SELECT spbm, SUM(bqje) AS bqje
FROM (SELECT DISTINCT ckhtsp.spbm,
(SELECT isnull(SUM(ckhtsp.spdj * ckhtsp.spsl), 0)
FROM ckhtsp, ckht
WHERE ckhtsp.hth = ckht.hth AND DATENAME(year, htrq) >= '2002-01-01' AND DATENAME(year, htrq) <= '2003-12-01') AS bqje
FROM ckht, ckhtsp
WHERE ckht.hth = ckhtsp.hth AND ckht.hth = ckhtsp.hth
GROUP BY spbm) t
GROUP BY spbm

1,为什么结果是一样的?怎样根据SPBM分组显示数据?
2,前一个日期能不能根据后一个日期相差365天?
谢谢!
...全文
21 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
bezier1980 2003-09-19
  • 打赏
  • 举报
回复
谢谢,搞定了
zjcxc 2003-09-19
  • 打赏
  • 举报
回复
当然一样啊,每行都是执行同一个查询啊.

将你的数据结构+数据+要求贴出来.
bezier1980 2003-09-19
  • 打赏
  • 举报
回复
SELECT isnull(SUM(ckhtsp.spdj * ckhtsp.spsl), 0)
FROM ckhtsp, ckht
WHERE ckhtsp.hth = ckht.hth AND DATENAME(year, htrq) >= '2002-01-01' AND DATENAME(year, htrq) <= '2003-12-01'

每行所显示的结果是一样的?
dafu71 2003-09-19
  • 打赏
  • 举报
回复
2,前一个日期能不能根据后一个日期相差365天?
datdiff(dd,前一个日期,后一个日期)=365
txlicenhe 2003-09-19
  • 打赏
  • 举报
回复
1: 什么意思?什么一样?
2: 什么意思? 你是说:set @后一日期 = dateadd(day,365,@前一日期)

22,210

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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