请大家帮我看下这个sql语句,,其中的join部分不怎么看的明白(习惯看where的),请兄弟们帮帮我,帮我把下面这个sql语句中的join翻译成where,,非常感谢!!!select top 10 disk.objectkey as array_disk, maximum as max_read from halchm.hal_storagearray as array join halchm.hal_disk as disk join vxam.object as mon_obj on disk._objectlink = mon_obj.external_id join vxam.NCL_READS_PERSECOND_HOUR as DataTable on mon_obj.ID = DataTable.object_id where array.objectkey = 'IBM.2107-75LH581_900' and average_time between dateadd(hour, -24, now()) and dateadd(hour, -23, now()) order by max_read desc
跟Oracle差不多,只是把你top改成先排序后取前10
select array_disk,max_ from (
select rownum as rn,disk.objectkey as array_disk, maximum as max_
from halchm.hal_storagearray as array
join halchm.hal_disk as disk on......--这个你的连接条件是不是漏了?
join vxam.object as mon_obj on disk._objectlink = mon_obj.external_id
join vxam.NCL_READS_PERSECOND_HOUR as DataTable on mon_obj.ID = DataTable.object_id
where array.objectkey = 'IBM.2107-75LH581_900'
and average_time between dateadd(hour, -24, now()) and dateadd(hour, -23, now()) order by max_read desc)
where rn<=10
select disk.objectkey as array_disk, maximum as max_read
from halchm.hal_storagearray array,
halchm.hal_disk disk,
vxam.object mon_obj,
vxam.NCL_READS_PERSECOND_HOUR DataTable
row_number() over(order by max_read desc) rn
where disk._objectlink = mon_obj.external_id
and array.= disk._objectlink -- 还少个连接条件
and mon_obj.ID = DataTable.object_id
and array.objectkey = 'IBM.2107-75LH581_900'
and average_time between dateadd(hour, -24, now())
and dateadd(hour, -23, now())
--dateadd() 你是自己写的函数吗?now()是要取当前的系统时间吗?如果是的话要用sysdate
and rn<=10
from halchm.hal_storagearray array,
halchm.hal_disk disk,
vxam.object mon_obj,
vxam.NCL_READS_PERSECOND_HOUR DataTable
row_number() over(order by max_read desc) rn
where disk._objectlink = mon_obj.external_id
and array.= disk._objectlink -- 还少个连接条件
and mon_obj.ID = DataTable.object_id
and array.objectkey = 'IBM.2107-75LH581_900'
and average_time between sysdate -1 and sysdate - 23/24
and rn<=10
---mssql
select top 10 disk.objectkey as array_disk, maximum as max_read
from halchm.hal_storagearray as array join halchm.hal_disk as disk --少了个连接条件
join vxam.object as mon_obj on disk._objectlink = mon_obj.external_id
join vxam.NCL_READS_PERSECOND_HOUR as DataTable on mon_obj.ID = DataTable.object_id
where array.objectkey = 'IBM.2107-75LH581_900'
and average_time between dateadd(hour, -24, now()) and dateadd(hour, -23, now())
order by max_read desc--oracleselect array_disk,max_read
from (select disk.objectkey as array_disk, maximum as max_read
from halchm.hal_storagearray as array join halchm.hal_disk as disk --少了连接条件
join vxam.object as mon_obj on disk._objectlink = mon_obj.external_id
join vxam.NCL_READS_PERSECOND_HOUR as DataTable on mon_obj.ID = DataTable.object_id
where array.objectkey = 'IBM.2107-75LH581_900'
and average_time between sysdate-1 and sysdate-23/24
order by max_read desc)
where rownum<11