小弟新学数据库,平时用得不多.现有一个"高难度的问题"请教各位大虾.
提供分数不多,但只要解决,决不食言!
需要的是有能之士前来挑战.
如有情况不明者可留言索要,再次感谢,下面开始吧.问题:我有一进货表,存贮进货日期,来货单位,来货品种,数量,单价等信息
现要把每次新进货的品种,与上一次的进行价格对比.(同品种)表中有进货细单,所以可以据max(进货细单)查找到最近一次进价.但还不行.
/*最后一次进货单价,按最大进货总单SUDOCDTLID为依据*/
/*
SELECT 项目1,项目2,项目3,项目4,项目5,项目6
FROM 表1
WHERE 进货细单 IN (SELECT SUDTLID 
FROM (SELECT 货品,MAX(进货细单) SUDTLID 
FROM 表1 GROUP BY 货品) A);

*/在网上学习了一天,使用下面的语句,只能查找所有表中的最后二条,结果不是我所要的(每个货品最新的二条).
select rownum,a.货品,a.进货细单
from 表1 a
where rownum <=2
group by a.货品,a.进货细单,rownum
order by a.进货细单,a.货品 desc;同时要查找出每个货品的,最后2条记录.并用列转换成行.如:
货品 价格
A 12.0
A 12.5
B 10.0
C 11.0
B 10.5
C 11.5
转换成:
货品 价格1 价格2
A 12.0 12.5
B 10.0 10.5
C 11.0 11.5参考高手的资料,在此提供列转行的方法,请行家鉴定。呵呵实现功能
创建视图时移动行值为列值表ttt有三个字段
seq  --序列
jcxm --检查项目
zhi  --值数据分别如下:
seq   jcxm       zhi
-------      --------          --------
11     1    0.50
11     2    0.21
11     3    0.25
12     1    0.24
12     2    0.30
12     3    0.22                             
create view v_view1
as
select seq,
       sum(decode(jcxm,1, zhi)) 检测项目1,
       sum(decode(jcxm,2, zhi)) 检测项目2, 
       sum(decode(jcxm,3, zhi)) 检测项目3 
from ttt
group by seq;序号 检测项目1  检测项目2  检测项目3
11     0.50    0.21     0.25
12     0.24    0.30     0.22我查询过“提取最后二条记录”,“Oracle 列转行”等。