oracle查询问题

mohism 发布于 2012/08/13 20:33
阅读 127
收藏 0

两张表

A表 

字段1   字段2                         字段3 

1001     2012-10-12                5

1002    2012-10-10                 3

1002    2012-10-11                4

B表

字段1   字段2                    字段3 

1001    2012-10-11              -2

1002    2012-10-10              -2

1002    2012-10-13              -4 

写一个SQL语句、查询出的结果如下:(想查字段1 为1002的10月份的所有记录)

字段1        字段2         字段3

1002        2012-10-10     3

1002       2012-10-10     -2

1002       2012-10-11      4   

1002       2012-10-13     -4      

最好还能对字段3是同一天的就做求和更好:

字段1   字段2          字段3

1002     2012-10-10      1

1002    2012-10-11       4

1002    2012-10-13      -4

 

 

 

 

以下是问题补充:

@mohism:谢谢大家了、我还想再问下、如果我的时间是精确到秒的、我想要将日期是相同的就将字段3的值加起来。这样该怎么样呢~ (2012/08/13 23:25)
加载中
0
mohism
mohism
大哥们、帮忙看看~怎么实现
0
绝情公子
绝情公子
select 1002 from 表名 where 10/2012 你试一下这个语法,我是初学者,不行的话我在研究下
mohism
mohism
这样好像不可以~~谢谢哈、你在看看
0
黄龍
黄龍

select 字段1,字段2,sum(字段3) from 

(select 字段1,字段2,字段3 from 表一 union all select 字段1,字段2,字段3 from 表二)

where 字段1 = '1002' and to_char(字段二,'yyyymm') = '201210' group by 字段一,字段二

0
Fly的狐狸
Fly的狐狸

up 

但是and to_char(字段二,'yyyymm') = '201210' 好像多此一举了

0
悄悄地慢慢的

(select * from A表 where A表.字段1 = 1002)  union (select * from B表 where B表.字段1 = 1002)

就这,union貌似拼行

0
绝情公子
绝情公子
select 字段1,字段2,字段3 from 表名 where 字段2等于10/2012 这里的等于要用数学符号,还有逗号要用英文输入法上面的逗号, 这回应该可以了
0
mohism
mohism

引用来自“HL_Simon”的答案

select 字段1,字段2,sum(字段3) from 

(select 字段1,字段2,字段3 from 表一 union all select 字段1,字段2,字段3 from 表二)

where 字段1 = '1002' and to_char(字段二,'yyyymm') = '201210' group by 字段一,字段二

嗯、这个可以~~谢谢大家了
0
hookybaby
hookybaby
select 字段1,字段2,sum(字段3) from (select * from 表1 union all select * from 表2 ) group by 字段1,字段2
mohism
mohism
嗯、你写的可以的~~谢谢哈
0
hookybaby
hookybaby
如果数据量大,union all 耗时。
0
mohism
mohism
谢谢大家了、我还想再问下、如果我的时间是精确到秒的、我想要将日期是相同的就将字段3的值加起来。这样该怎么样呢~
hookybaby
hookybaby
to_char就行了呀,里面写你的格式
返回顶部
顶部