能给出tab1与tab2的示例数据号码?
解决方案 »
- 忘记添加主键了
- sql语句
- mysql数据库的奇怪问题,大家mysql是否可能实现。
- 数据库查询语句求助!
- 问个数据表联合查询优化的问题
- 大家好,请教如何改变MySQL的网络端口地址?!
- 高分求教:数据库导入导出工具
- 请问:何处有下载mysql for windows?是否是免费的?
- 无法启动MySQL: The server quit without updating PID file
- mysql 5.6.22.0 安装
- 使用myicq时,为什么分组后,里面的又都跳到了好友组?
- select * from...和select xx,xx, xxx,xx from ...执行效率上有没有大的区别
id name
'0000001' 'a'
'0000002' 'b'
'0000003' 'c'
'0000004' 'd'tab2
id time value
'0000001' '2002-8-1' 12
'0000001' '2002-8-2' 13
'0000001' '2002-8-3' 14
: : :
: : :
'0000002' '2002-8-1' 12
'0000002' '2002-8-2' 13
'0000002' '2002-8-3' 14
: : :
: : :
'0000003' '2002-8-1' 12
'0000003' '2002-8-2' 13
'0000004' '2002-8-3' 14
: : :
: : :
结果:
'a' 10
'b' 20
: :
: :
: :
a =14-12=2,不应该是10啊
b =14-12=2,不应该是20
c=0,
是不是这样?
还有你的sql是不是mysql?
对不起啊,结果我是任意写的,查询结果就是要你说的那种!!
建一个TEMP表,
将MAX值写入,
再查询出MIN值,
做相减处理
select tb1.name,if((min(tb2.time)<>'2002-08-01') or (max(tb2.time)<>'2002-08-03') ,0,max(tb2.value)-min(tb2.value) )
from tb1,tb2
where tb1.id=tb2.id and
tb2.time between '2002-08-01'
and '2002-08-03'
group by tb2.id
select tb1.name,if((min(tb2.time)<>'2002-08-01') or (max(tb2.time)<>'2002-08-03') ,0,max(tb2.value)-min(tb2.value) ) as '差值'
from tb1,tb2
where tb1.id=tb2.id and
tb2.time between '2002-08-01'
and '2002-08-03'
group by tb2.id