求解一条SQL,列做与运算

zjh527 2008-09-26 03:32:04
checkno xzqh downstatus upstatus
200803 370101 0 0
200803 370102 1 0
200803 360101 0 1
200803 360102 0 0
200803 350101 1 0
200803 350102 1 0
按xzqh前2位分组, 同组的downstatus和upstatus分别作与运算
结果:
200803 370000 0 0
200803 360000 0 0
200803 350000 1 0
...全文
88 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
zjh527 2008-09-26
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 Flashield 的回复:]
楼上的,人家要的是逻辑与操作哦。

--一个讨巧的方法
select checkno ,substr(xzqh,1,2)+'0000' as xzqh,min(downstatus) as downstatus, min(upstatus) as upstatus
from table1
group by checkno ,substr(xzqh,1,2)
[/Quote]


晕~引用错回帖了,因该是这个引用。
zjh527 2008-09-26
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 roy_88 的回复:]
SQL codeselect heckno ,left(xzqh,2)+'0000' as xzqh,sum(downstatus) as downstatus, sum(upstatus) as upstatus from table1 group by heckno ,left(xzqh,2)
[/Quote]


呵呵,想到一起去了,已经用这个方法解决了。
中国风 2008-09-26
  • 打赏
  • 举报
回复
select 
heckno ,
substr(xzqh,1,2)||'0000' as xzqh,
min(downstatus) as downstatus, --取最小值
min(upstatus) as upstatus --取最小值
from
table1
group by heckno ,substr(xzqh,1,2)
中国风 2008-09-26
  • 打赏
  • 举报
回复
select heckno ,substr(xzqh,1,2)||'0000' as xzqh,--oracle這里要改改
sum(downstatus) as downstatus, sum(upstatus) as upstatus from table1 group by heckno ,substr(xzqh,1,2)
Flashield 2008-09-26
  • 打赏
  • 举报
回复
楼上的,人家要的是逻辑与操作哦。

--一个讨巧的方法
select checkno ,substr(xzqh,1,2)+'0000' as xzqh,min(downstatus) as downstatus, min(upstatus) as upstatus
from table1
group by checkno ,substr(xzqh,1,2)
中国风 2008-09-26
  • 打赏
  • 举报
回复
select heckno  ,left(xzqh,2)+'0000' as xzqh,sum(downstatus) as downstatus,  sum(upstatus) as upstatus from table1 group by heckno  ,left(xzqh,2)

17,382

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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