1.根据某个条件(编码)分组获取每月最新的一条数据
SELECT *
FROM
(
SELECT
ROWNUM RECNO,
T.BIDS_CODE,
T.COMP_ASSE,
T.COU_TM,
MAX(T.COU_TM ) OVER(PARTITION BY T.BIDS_CODE) AS TM
FROM ATT_MQUA_BIZ T
)T
WHERE T.COU_TM=T.TM ORDER BY T.COU_TM DESC
这里用到的函数是 max() over() 分析函数之一,也就是根据设置的值取最大的一个,我这里是用的时间cou_tm,然后根据bids_code进行分组
2.批量更新数据(从一张中取数据放入另一张表中)
update pm_proj_b a
set
a.proj_zytz=(select decode(b.tzjh_zy,null,0,b.tzjh_zy) from pm_month_report b where a.proj_id=b.pm_proj_id),
a.proj_dftz=(select decode(b.tzjh_df,null,0,b.tzjh_df) from pm_month_report b where a.proj_id=b.pm_proj_id),
a.proj_pftz=(select (decode(b.tzjh_df,null,0,b.tzjh_df)+decode(b.tzjh_zy,null,0,b.tzjh_zy)) from pm_month_report b where a.proj_id=b.pm_proj_id)
多数据同时导出到另一张表中
3.查询表中不包含另一张表数据的数据
简单的记录一下思路:将A表的所有数据查询出来,在where后面加上限制条件,not in (select code from b where ...) 特别注意的是在not in 里面查询出来的字段必须保存唯一性, 也就是 条件1 not in (xxx) ,条件1要与括号里面的对应,不然会报错哦。