查询结果中查询

zhangzhen_927116 2013-05-11 11:07:46
select a.ZWFZJE_KJND ,a.ZWFZJE_KJQJ,a.ZWFZJE_KMBH,a.ZWFZJE_BMBH,sum(a.ZWFZJE_JFLJ) as BMBYLJ,

(select sum(b.ZWFZJE_JFLJ) from lc0209999.ZWFZJE b where (b.ZWFZJE_KJQJ<=a.ZWFZJE_KJQJ)
and a.ZWFZJE_KJND=b.ZWFZJE_KJND
and a.ZWFZJE_KMBH=b.ZWFZJE_KMBH
and a.ZWFZJE_BMBH=b.ZWFZJE_BMBH ) as BMBNLJ

from lc0209999.ZWFZJE a
where (a.ZwFZJE_KMBH like '6601%' or a.ZwFZJE_KMBH like '6602%' or a.ZwFZJE_KMBH like '5102%')
--and a.ZWFZJE_KJND='2012'and a.ZWFZJE_KMBH='6601001' and a.ZWFZJE_BMBH = '1501'
group by a.ZWFZJE_KJND,a.ZWFZJE_KJQJ,a.ZWFZJE_KMBH,a.ZWFZJE_BMBH
order by a.ZWFZJE_KJND,a.ZWFZJE_KJQJ,a.ZWFZJE_KMBH,a.ZWFZJE_BMBH


2012 01 6601001 01 0.000000000000 0.000000000000 NULL
2012 01 6601001 14 0.000000000000 0.000000000000 NULL
2012 01 6601001 1501 0.000000000000 0.000000000000 NULL
2012 01 6601001 1502 0.000000000000 0.000000000000 NULL
2012 01 6601001 1503 0.000000000000 0.000000000000 NULL
2012 01 6601001 1504 0.000000000000 0.000000000000 NULL
2012 01 6601001 1506 0.000000000000 0.000000000000 NULL
2012 01 6601001 1508 0.000000000000 0.000000000000 NULL
2012 01 6601001 1510 0.000000000000 0.000000000000 NULL
2012 01 6601001 1511 0.000000000000 0.000000000000 NULL
2012 01 6601001 1514 0.000000000000 0.000000000000 NULL
2012 01 6601001 1516 0.000000000000 0.000000000000 NULL
2012 01 6601001 1517 0.000000000000 0.000000000000 NULL
2012 01 6601002 1501 0.000000000000 0.000000000000 NULL
2012 01 6601002 1502 0.000000000000 0.000000000000 NULL
2012 01 6601002 1508 0.000000000000 0.000000000000 NULL
2012 01 6601002 1511 0.000000000000 0.000000000000 NULL



在这个结果后面在添加一栏 数据是第一栏减1,在结果中的数据。就是2012-1=2011 结果中2011的数据
...全文
95 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhangzhen_927116 2013-05-11
  • 打赏
  • 举报
回复
引用 4 楼 ap0405140 的回复:
唐诗不才,没有看懂..
这打字我也不知道怎么说。说不清楚。 简单的说。就是在上面结果中再查询查询的条件是第一栏的年份减去一年。在结果中查找。 2011 1 00 123 2010 1 00 321 要的结果 2011 1 00 123 2010 321
唐诗三百首 2013-05-11
  • 打赏
  • 举报
回复
唐诗不才,没有看懂..
zhangzhen_927116 2013-05-11
  • 打赏
  • 举报
回复
只不过不要这么多。 我要的就是那个01
zhangzhen_927116 2013-05-11
  • 打赏
  • 举报
回复
引用 1 楼 ap0405140 的回复:
try this,

select a.ZWFZJE_KJND,a.ZWFZJE_KJQJ,a.ZWFZJE_KMBH,a.ZWFZJE_BMBH,sum(a.ZWFZJE_JFLJ) as BMBYLJ,
(select sum(b.ZWFZJE_JFLJ) from lc0209999.ZWFZJE b where (b.ZWFZJE_KJQJ<=a.ZWFZJE_KJQJ) 
 and a.ZWFZJE_KJND=b.ZWFZJE_KJND 
 and a.ZWFZJE_KMBH=b.ZWFZJE_KMBH 
 and a.ZWFZJE_BMBH=b.ZWFZJE_BMBH) as BMBNLJ,
a.ZWFZJE_KJND-1 'new_col' 
from lc0209999.ZWFZJE a
where (a.ZwFZJE_KMBH like '6601%' or a.ZwFZJE_KMBH like '6602%' or a.ZwFZJE_KMBH like '5102%') 
--and a.ZWFZJE_KJND='2012'and a.ZWFZJE_KMBH='6601001' and a.ZWFZJE_BMBH = '1501' 
group by a.ZWFZJE_KJND,a.ZWFZJE_KJQJ,a.ZWFZJE_KMBH,a.ZWFZJE_BMBH
order by a.ZWFZJE_KJND,a.ZWFZJE_KJQJ,a.ZWFZJE_KMBH,a.ZWFZJE_BMBH
可能是我没表达清楚。 是减去1后这个数值在上面结果中的所有数值 打个比喻如果减去1是2012 那么结果就是 2012 01 6601001 01 0.000000000000 0.000000000000
唐诗三百首 2013-05-11
  • 打赏
  • 举报
回复
try this,

select a.ZWFZJE_KJND,a.ZWFZJE_KJQJ,a.ZWFZJE_KMBH,a.ZWFZJE_BMBH,sum(a.ZWFZJE_JFLJ) as BMBYLJ,
(select sum(b.ZWFZJE_JFLJ) from lc0209999.ZWFZJE b where (b.ZWFZJE_KJQJ<=a.ZWFZJE_KJQJ) 
 and a.ZWFZJE_KJND=b.ZWFZJE_KJND 
 and a.ZWFZJE_KMBH=b.ZWFZJE_KMBH 
 and a.ZWFZJE_BMBH=b.ZWFZJE_BMBH) as BMBNLJ,
a.ZWFZJE_KJND-1 'new_col' 
from lc0209999.ZWFZJE a
where (a.ZwFZJE_KMBH like '6601%' or a.ZwFZJE_KMBH like '6602%' or a.ZwFZJE_KMBH like '5102%') 
--and a.ZWFZJE_KJND='2012'and a.ZWFZJE_KMBH='6601001' and a.ZWFZJE_BMBH = '1501' 
group by a.ZWFZJE_KJND,a.ZWFZJE_KJQJ,a.ZWFZJE_KMBH,a.ZWFZJE_BMBH
order by a.ZWFZJE_KJND,a.ZWFZJE_KJQJ,a.ZWFZJE_KMBH,a.ZWFZJE_BMBH
zhangzhen_927116 2013-05-11
  • 打赏
  • 举报
回复
引用 6 楼 ap0405140 的回复:
就你所给数据给个例子,自己参考着用到你的语句中吧,

create table za(a int, b int, c varchar(10), d varchar(10))

insert into za
  select 2011, 1, '00', '123' union all   
  select 2010, 1, '00', '321'


select x.a,x.b,x.c,x.d,y.a,y.d
 from za x
 left join za y on x.a=y.a+1
 where y.a is not null

/*
a           b           c          d          a           d
----------- ----------- ---------- ---------- ----------- ----------
2011        1           00         123        2010        321

(1 row(s) affected)
*/
好的。。谢谢啊
唐诗三百首 2013-05-11
  • 打赏
  • 举报
回复
就你所给数据给个例子,自己参考着用到你的语句中吧,

create table za(a int, b int, c varchar(10), d varchar(10))

insert into za
  select 2011, 1, '00', '123' union all   
  select 2010, 1, '00', '321'


select x.a,x.b,x.c,x.d,y.a,y.d
 from za x
 left join za y on x.a=y.a+1
 where y.a is not null

/*
a           b           c          d          a           d
----------- ----------- ---------- ---------- ----------- ----------
2011        1           00         123        2010        321

(1 row(s) affected)
*/

22,206

社区成员

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

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