作者shan311 (勉强微笑)
看板Database
标题[SQL ] 想请问有关合并资料表的问题
时间Sun Oct 7 03:37:05 2007
抱歉忘了提 是SQL SERVER
最近捞资料出现瓶颈了
想请教各位两个问题
1.在捞资料的时候,以时间为搜寻的条件,捞一天
但因为资料库的时间格式设定为如: 2007-10-05T23:59:01 +08:00
唯一想到的方式就是转换资料库时间去搜寻
=> where to_char(c_time,'yyyy/mm/dd hh24:mi:ss') between
'2007/10/05 00:00:00' and '2007/10/05 23:59:00'
但是或许是因为资料量大的关系,变成搜寻一天的资料时,要花上五分钟的时间,
挺尴尬的,不知道大家有甚麽比较快的搜寻方法吗? 前题是,资料库不能更动
感谢各位!!
2.合并资料表的问题
1.H1:cTIME,ID,name,phone,pro_NO,proname,faults,....
2.H2:cTIME,ID,name,QTY,SEQ,EQP_ID
希望两个资料表合并以後能计算faults的数: COUNT(B.faults) AS TOTAL
合并之後应该会产生以下栏位:
cTIME,ID(H1),name,phone,pro_NO(取前两字元),proname,faults,
ID(H2),QTY,E0010,TOTAL
SELECT DISTINCT B.cTIME,B.ID,B.name,B.phone,substr(B.pro_NO,1,2) AS pro_NO,
B.proname,B.faults,COUNT(B.faults) AS TOTAL,"A.*
from(select name,QTY,MAX(E0010) E0010 FROM
(select name,QTY,case when SEQ='0010' then EQP_ID end as E0010
from H2 where OP_SEQ in ('0010') )
group by name,QTY) A join H1 B on A.name=B.name AND
to_char(cTIME,'yyyy/mm/dd hh24:mi:ss') BETWEEN ''2007/10/05 00:00:00' and
'2007/10/05 23:59:00'
GROUP BY B.cTIME,B.ID,B.name,B.phone,pro_NO,B.proname,B.faults
抱歉有点乱,我已经尽量排得好一点了,我知道多计算count时,後面要
group by 前面的所有栏位 但是我就是怎麽try都try不出来
所以在此请教各位,希望有人能告诉我 我的盲点在哪 谢谢!!!!
真的感激不尽!!!!!!!!!
--
我是吕小3小是我
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 61.229.80.168
※ 编辑: shan311 来自: 61.229.80.168 (10/07 03:41)
※ 编辑: shan311 来自: 61.229.80.168 (10/07 03:44)