求解!!!一道高级sql语句查询

huangchbao 2010-05-27 11:03:25
字段....times iss
2010-03-09 是
2010-03-09 是
2010-03-09 否
2010-03-09 否
2010-03-10 是
2010-03-09 否
2010-03-09 否


查询回来的结果
字段....times 是 否
2010-03-09 2 2
2010-03-09 1 2

主要要的逻辑...而不是小技巧查询回来的结果....
...全文
178 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
huangchbao 2010-05-27
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 wanli209 的回复:]
2010-03-10 去哪里了?
[/Quote]
呵呵..要是不一致的话..怎么可能出这道题呢...
这道题是没有问题的 。。。。

重要的实在逻辑这!!!
huangchbao 2010-05-27
  • 打赏
  • 举报
回复
我试过了...也许可能是我没有写对吧!。。
但是如果真想帮忙的话...
我希望大家亲自试试这到题....
wanli209 2010-05-27
  • 打赏
  • 举报
回复
查询结果和数据库数据不一致吧?
wanli209 2010-05-27
  • 打赏
  • 举报
回复
2010-03-10 去哪里了?
传奇 2010-05-27
  • 打赏
  • 举报
回复
根据 times和iss分组,然后count一下不可以?
dr_lou 2010-05-27
  • 打赏
  • 举报
回复
[Quote=引用 16 楼 dr_lou 的回复:]
结果
2010-05-27 1 1
2010-05-26 3 1
[/Quote]

结果
time yes no
2010-05-27 1 1
2010-05-26 3 1


oracle数据库
dr_lou 2010-05-27
  • 打赏
  • 举报
回复

create table test(
time varchar2(20),
sign varchar2(5)
);

insert into test values('2010-05-26','yes');
insert into test values('2010-05-26','yes');
insert into test values('2010-05-26','no');
insert into test values('2010-05-27','yes');
insert into test values('2010-05-26','yes');
insert into test values('2010-05-27','no');

select time,
sum(case sign when 'yes' then 1 else 0 end) yes,
sum(case sign when 'no' then 1 else 0 end) no
from test
group by time


结果
2010-05-27 1 1
2010-05-26 3 1

你把之前的帖子结了,然后下次把问题说里搜了。
smartstruts 2010-05-27
  • 打赏
  • 举报
回复
--copy的时候忘了改主键值,这个例子我测试过了的

在oracle 中建表,表名tbl
create table tbl(
id number primary key,
times varchar(12),
iss varchar(12));

insert into tbl values(1,'2009-03-09','yes');
insert into tbl values(2,'2009-03-09','yes');
insert into tbl values(3,'2009-03-09','no');
insert into tbl values(4,'2009-03-10','yes');
insert into tbl values(5,'2009-03-10','no');

select a.times,a.yes ,b.no
from
(select times,count(iss) yes
from tbl
where iss='yes'
group by times) a
left join
(select times,count(iss) no
from tbl
where iss='no'
group by times) b
on a.times=b.times;

smartstruts 2010-05-27
  • 打赏
  • 举报
回复
在oracle 中建表,表名tbl
create table tbl(
id number primary key,
times varchar(12),
iss varchar(12));

insert into tbl values(1,'2009-03-09','yes');
insert into tbl values(2,'2009-03-09','yes');
insert into tbl values(3,'2009-03-09','no');
insert into tbl values(2,'2009-03-10','yes');
insert into tbl values(3,'2009-03-10','no');

select a.times,a.yes ,b.no
from
(select times,count(iss) yes
from tbl
where iss='yes'
group by times) a
left join
(select times,count(iss) no
from tbl
where iss='no'
group by times) b
on a.times=b.times;

Vstrive 2010-05-27
  • 打赏
  • 举报
回复
我也认为题目写错了
应该是这样的吧
字段....times iss
2010-03-09 是
2010-03-09 是
2010-03-09 否
2010-03-09 否
2010-03-10 是
2010-03-10 否
2010-03-10 否

查询回来的结果
字段....times 是 否
2010-03-09 2 2
2010-03-10 1 2
llf371755616 2010-05-27
  • 打赏
  • 举报
回复
没看明白
kbyst 2010-05-27
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 bao110908 的回复:]

简直不知道你想要什么!

凭什么查询结果是样的?

SQL code
字段....times 是 否
2010-03-09 2 2
2010-03-09 1 2


我不知道别人是怎么看的,至少我没看出来为啥会是这样的结果!
[/Quote]

俺也不知道他想干啥,天热中暑了吧。。。。。。
yueguangkai001 2010-05-27
  • 打赏
  • 举报
回复
select TIME,
sum(case type when '是' then num else 0 end) 是,
sum(case type when '否' then num else 0 end) 否
from tb where TIME='2010-03-09'
group by TIME
传奇 2010-05-27
  • 打赏
  • 举报
回复
[Quote=引用楼主 huangchbao 的回复:]
字段....times iss
2010-03-09 是
2010-03-09 是
2010-03-09 否
2010-03-09 否
2010-03-10 是
2010-03-09 否
2010-03-09 否


查询回来的结果
字段....times 是 否
2010-03-09 2 2
2010-03-09 1 2

主要要……
[/Quote]
晕,他肯定是题目写错了呗,应该是
字段....times iss
2010-03-09 是
2010-03-09 是
2010-03-09 否
2010-03-09 否
2010-03-10 是
2010-03-10 否
2010-03-10 否



查询回来的结果
字段....times 是 否
2010-03-09 2 2
2010-03-09 1 2

题目应该是这样的吧。。。
那么按照我的想法,就是按times和iss分组,然后count出结果。
神之泪花 2010-05-27
  • 打赏
  • 举报
回复
需求不太明白,看了半天没看懂题目,
  • 打赏
  • 举报
回复
我发觉现在来 CSDN 提问的人越来越高级、越来越神了。

三两句话的描述,问 SQL 问题,也没说用的是什么数据库,也不说查询结果是怎么出来的,往那里一帖,标题上加些“高级”的字眼就能解决问题了。

哎,看来我是老了,越来越适应不了这种神一样的问题了。
  • 打赏
  • 举报
回复
简直不知道你想要什么!

凭什么查询结果是样的?

字段....times 是 否
2010-03-09 2 2
2010-03-09 1 2


我不知道别人是怎么看的,至少我没看出来为啥会是这样的结果!

67,538

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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