【求助】求一个存储过程

xupeihuagudulei 2012-06-12 10:35:34
帖子内容太长了,不想再重新编辑了。
麻烦大家移步到sql版吧。
发那里也是因为sql版人气旺点。
有人建议我发oracle来。来试试手气。
http://topic.csdn.net/u/20120612/22/9b42dd61-b8f8-40b3-931c-a3106aa41a15.html?seed=402042225&r=78844815#r_78844815
...全文
212 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
把那个什么食品去掉了 具体看要怎么加了 唉... 晕乎乎的 被食品弄的差不多叻

休息休息



select decode(lag(分析标准) over(order by 样品名称,分析标准),分析标准,'''''',分析标准) 分析标准,
decode(lag(样品名称) over(order by 样品名称,分析标准),样品名称,'''''',样品名称) 样品名称,
指标名称,
单位,
指标值,
本月最高,
本月最低,
本月平均,
累计平均
from
(
select b.analyse_method_name 分析标准,
a.sample_name||a.pointer_result 样品名称,
c.test_item_name 指标名称,
c.data_unit_name 单位,
c.pointer_condition_text 指标值,
d.m_val 本月最高,
d.n_val 本月最低,
p_val 本月平均
from test_analyse b
left join test_sample a on a.test_sample_id=b.test_sample_id
left join
(
select distinct t1.test_item_id,
t1.test_analyse_id,
t1.test_item_name,
t1.analyse_value,
decode(replace(c2,t1.test_item_name,''),c2,
t1.pointer_condition_text,
replace(c2,t1.test_item_name,'')
) pointer_condition_text,
t1.pointer_result,
t1.data_unit_name,
t1.pointer_condition_text2
from test_item t1
left join
(
select distinct replace(regexp_substr(pointer_condition_text2,'[^;]+',1,level),';',' ') c2
from test_item
where pointer_condition_text2 is not null
connect by level<=length(pointer_condition_text2)-length(replace(pointer_condition_text2,';',''))+1
) t2
on length(replace(c2,t1.test_item_name,'')) < length(c2)
//排除关于食品的
where ((t1.pointer_condition_text is not null and t1.pointer_condition_text2 is null)
or (t1.pointer_condition_text is null and t1.pointer_condition_text2 is not null))
order by t1.test_item_id
) c on b.test_analyse_id=c.test_analyse_id,
(
select t1.test_sample_id,t1.sample_name||t1.pointer_result sp,
max(t3.analyse_value) m_val,
min(t3.analyse_value) n_val,
round(sum(t1.producenumber*t3.analyse_value)/sum(t1.producenumber),2) p_val
from test_sample t1,
test_analyse t2,
test_item t3
where t1.test_sample_id=t2.test_sample_id and
t2.test_analyse_id=t3.test_analyse_id and
to_char(t1.sampling_date,'yyyy-mm') = '2012-05'
group by t1.test_sample_id,t1.sample_name||t1.pointer_result
) d
where a.test_sample_id = d.test_sample_id
and to_char(a.sampling_date,'yyyy-mm') = '2012-05' --to_char(sysdate,'yyyy-mm')
) f1,
(
select sp,round(sum(p_val*s_pro)/sum(s_pro),2) 累计平均
from
(
select tt1.sample_name||tt1.pointer_result sp,round(sum(tt1.producenumber*tt3.analyse_value)/sum(tt1.producenumber),2) p_val,
sum(tt1.producenumber) s_pro
from test_sample tt1,
test_analyse tt2,
test_item tt3
where tt1.test_sample_id=tt2.test_sample_id and
tt2.test_analyse_id=tt3.test_analyse_id and
tt1.sampling_date < sysdate and
to_char(tt1.sampling_date,'yyyy') = to_char(sysdate,'yyyy')
group by to_char(tt1.sampling_date,'yyyy-mm'),tt1.sample_name||tt1.pointer_result
)
group by sp
) f2
where f1.样品名称 = f2.sp


分析标准 样品名称 指标名称 单位 指标值 本月最高 本月最低 本月平均 累计平均
----------------------------------------------------------------------------------------------
gb/12-------SG3合格品----挥发物-----------%---------<=0.50 136 0.5 24.39 24.39
''----------''-----------250um筛孔筛余物--%--------->=23 136 0.5 24.39 24.39
''----------''-----------吸油量-----------g--------->=23 136 0.5 24.39 24.39
''----------''-----------黏数-------------ml/g------143-136 136 0.5 24.39 24.39
''----------''-----------表观密度---------g/ml------>=0.40 136 0.5 24.39 24.39
gb/34-------''-----------60um筛孔筛余物---%---------<=30 136 0.5 24.39 24.39
''----------''-----------杂质粒子数-------个--------<=30 136 0.5 24.39 24.39
''----------''-----------鱼眼-------------个/400cm--<=30 136 0.5 24.39 24.39
''----------''-----------电导率-----------uS/(cm.g)-<=30 136 0.5 24.39 24.39
''----------''-----------白度烷-----------%---------<=30 136 0.5 24.39 24.39
gb/12-------SG3一等品----挥发物-----------%---------<=0.50 136 0.5 24.39 24.39
''----------''-----------250um筛孔筛余物--%--------->=23 136 0.5 24.39 24.39
''----------''-----------黏数-------------ml/g------143-136 136 0.5 24.39 24.39
''----------''-----------吸油量-----------g--------->=23 136 0.5 24.39 24.39
''----------''-----------表观密度---------g/ml------>=0.40 136 0.5 24.39 24.39
gb/34-------''-----------杂质粒子数-------个--------<=30 136 0.5 24.39 24.39
''----------''-----------白度烷-----------%---------<=30 136 0.5 24.39 24.39
''----------''-----------鱼眼------------个/400cm---<=30 136 0.5 24.39 24.39
''----------''-----------电导率-----------uS/(cm.g)-<=30 136 0.5 24.39 24.39
''----------''-----------60um筛孔筛余物---%---------<=30 136 0.5 24.39 24.39
gb/12-------SG3优等品----250um筛孔筛余物--%--------->=23 140 0.5 20.23 20.23
''----------''-----------挥发物-----------%---------<=0.50 140 0.5 20.23 20.23
''----------''-----------吸油量-----------g--------->=23 140 0.5 20.23 20.23
''----------''-----------黏数-------------ml/g------143-136 140 0.5 20.23 20.23
''----------''-----------表观密度---------g/ml------>=0.40 140 0.5 20.23 20.23
gb/34-------''-----------电导率-----------uS/(cm.g)-<=30 140 0.5 20.23 20.23
''----------''-----------鱼眼-------------个/400cm--<=30 140 0.5 20.23 20.23
''----------''-----------白度-------------%---------<=30 140 0.5 20.23 20.23
''----------''-----------杂质粒子数-------个--------<=30 140 0.5 20.23 20.23
''----------''-----------60um筛孔筛余物---%---------<=30 140 0.5 20.23 20.23
''----------''-----------VCM残留量--------ug/g------<=5 140 0.5 20.23 20.23
gb/4389398--次氯酸钠-----铁------------------------->=23 23 0.4 6.28 6.28
''----------''-----------外观----------------------->=0.40 23 0.4 6.28 6.28
''----------''-----------次氯酸钠含量-----%--------->=23 23 0.4 6.28 6.28
''----------''-----------游离碱含量-------%---------<=0.50 23 0.4 6.28 6.28
gb/890------氢气一等品---含量-------------%--------->=99 789 789 789 789






勿勿 2012-06-14
  • 打赏
  • 举报
回复
这么多东西。。。。。
  • 打赏
  • 举报
回复
那不是又回来了么 我开始是用的样品名称 来分组 查询每组的最大最小哇

查询出来的SG3合格品、SG3一等品.. 是136 应该是和造的数据有关系 如果改动下 可能就不一样了
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 的回复:]

2:SG3食品级下面只取出了两个项目 VCM残留量和1,1-二氯乙烷,出这样的结果是因为VCM残留量的pointer_result2为食品级,同时它的pointer_condition2值不为空,并且还包含了1,1-二氯乙烷这个项目,所以只出这两个项目,如果其他项目也有类似的话,也要全部显示出来。你目前的实现也已经把指标值给取出来了。
但是其他SG3一等品、优等品、合格品之类的,如果这些样品所……
[/Quote]

睡前应该是比较清醒的
oqqAzAz 2012-06-13
  • 打赏
  • 举报
回复
要看完整大图,可以另存为查看。
xupeihuagudulei 2012-06-13
  • 打赏
  • 举报
回复


这两张图片中,方框标起来的数据都是多余的。
PS:图片存在国外空间,可能加载会慢点。
xupeihuagudulei 2012-06-13
  • 打赏
  • 举报
回复
2:SG3食品级下面只取出了两个项目 VCM残留量1,1-二氯乙烷,出这样的结果是因为VCM残留量的pointer_result2为食品级,同时它的pointer_condition2值不为空,并且还包含了1,1-二氯乙烷这个项目,所以只出这两个项目,如果其他项目也有类似的话,也要全部显示出来。你目前的实现也已经把指标值给取出来了。
但是其他SG3一等品、优等品、合格品之类的,如果这些样品所包含的项目的pointer_condition为空,并且pointer_condition2不为空,又或者pointer_condition、pointer_condition2都为空,但是有其他项目包含它,例如1,1-二氯乙烷这个项目,它的pointer_condition、pointer_condition2都为空,但是有项目的pointer_condition2包含它。所以它不会出现在SG3一等品、优等品、合格品这类样品中。就如我上面的结果集里的数据。
目前就是这两个比较着急的问题,其他一些小问题我自己再找找看。
唿唿,麻烦你有空的时候再帮我看看啊。要是能仔细看看最好了,按照你现有的基础上再改改应该不难吧。。
xupeihuagudulei 2012-06-13
  • 打赏
  • 举报
回复
HJ_daxian,还是有些问题哦,
求最大值、最小值、本月平均、累计平均有问题,
我最终的结果:

分析标准(analyse_method_name) 样品名称 指标名称(test_item_name) 单位(data_unit_name) 指标值 本月最高 本月最低 本月平均 累计平均
gb/12 SG3优等品 黏数 ml/g 143-136 56 55 455 45
,, ,, 表观密度 g/ml >=0.40 56 55 455 45
,, ,, 吸油量 g >=23 56 55 455 45
,, ,, 挥发物 % <=0.50 56 55 455 45
,, ,, 250um筛孔筛余物 % >=23 56 55 455 45
gb/34 ,, 60um筛孔筛余物 % <=30 56 55 455 45
,, ,, 杂质粒子数 个 <=30 56 55 455 45
,, ,, 白度 % <=30 56 55 455 45
,, ,, 鱼眼 个/400cm <=30 56 55 455 45
,, ,, 电导率 uS/(cm.g <=30 56 55 455 45
,, ,, VCM残留量 ug/g <=30 56 55 455 45

gb/12 SG3合格品 黏数 ml/g 143-136 56 55 455 45
,, ,, 表观密度 g/ml >=0.40 56 55 455 45
,, ,, 吸油量 g >=23 56 55 455 45
,, ,, 挥发物 % <=0.50 56 55 455 45
,, ,, 250um筛孔筛余物 % >=23 56 55 455 45
gb/34 ,, 60um筛孔筛余物 % <=30 56 55 455 45
,, ,, 杂质粒子数 个 <=30 56 55 455 45
,, ,, 白度 % <=30 56 55 455 45
,, ,, 鱼眼 个/400cm <=30 56 55 455 45
,, ,, 电导率 uS/(cm.g <=30 56 55 455 45
,, ,, VCM残留量 ug/g <=30 56 55 455 45

gb/12 SG3一等品 黏数 ml/g 143-136 56 55 455 45
,, ,, 表观密度 g/ml >=0.40 56 55 455 45
,, ,, 吸油量 g >=23 56 55 455 45
,, ,, 挥发物 % <=0.50 56 55 455 45
,, ,, 250um筛孔筛余物 % >=23 56 55 455 45
gb/34 ,, 60um筛孔筛余物 % <=30 56 55 455 45
,, ,, 杂质粒子数 个 <=30 56 55 455 45
,, ,, 白度 % <=30 56 55 455 45
,, ,, 鱼眼 个/400cm <=30 56 55 455 45
,, ,, 电导率 uS/(cm.g <=30 56 55 455 45
,, ,, VCM残留量 ug/g <=30 56 55 455 45

gb/34 SG3食品级 VCM残留量 ml/g <=1 56 55 455 45
,, ,, 1,1-二氯乙烷 g/ml <=150 56 55 455 45

gb/890 氢气一等品 含量 ml/g 143-136 56 55 455 45

gb/890 次氯酸钠 外观 143-136 56 55 455 45
,, ,, 次氯酸钠含量 ml/g 143-136 56 55 455 45
,, ,, 游离碱含量 ml/g 143-136 56 55 455 45
,, ,, 铁 ml/g 143-136 56 55 455 45

1:比如SG3合格品,这样的话只取样品为SG3合格品中取最大值、最小值等,并不包含食品级、医用级这种。
同样SG3食品级最大值、最小值等,也不包含一等品、优等品、合格品这里面的数据。

  • 打赏
  • 举报
回复
乍一看 这么多数据哇

存储也是基于sql完成的 2个时间参数 可以先用2时间代替 sql写出来 存储也没问题了


oracle区人本来不多 大牛偶尔才出来转转 明天有时间再研究研究好了 貌似看着有点复杂 不知道能整出来不
xupeihuagudulei 2012-06-12
  • 打赏
  • 举报
回复
囧~!,难道粘贴错了,这么鬼异。
叶子 2012-06-12
  • 打赏
  • 举报
回复
你在我空间留言了,但是留的地址是个已经结了的帖子,你的意思就是这个帖子吧?

3,491

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 高级技术相关讨论专区
社区管理员
  • 高级技术社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧