我有两张表(FCT_SALES_SUMMARY_A
和FCT_SALES_SUMMARY_B
)。
如果我们假设每周一生成table A
,则会在下周一生成table B
即在这样的1周后,将有104周的数据。但随着周数增加以前的数据
将在FCT_SALES_SUMMARY_A
中丢失,如下所示,col104
中的table B
将包含该周的数据和
table A
会丢失第一个col1
数据。
如下所示,有时两个表中同一周的数据会有所不同。
例如,在FCT_SALES_SUMMARY_B
中更改了第22周的工资。
现在我需要找出同一周的更改数据,比较两个表中的列。
即,col2
中的FCT_SALES_SUMMARY_A
应与col1
中的FCT_SALES_SUMMARY_B
进行比较。
例如,表格中的数据在列中:
Table A
col:col1........col2........col3........col4........col5...col104
WEEk:1stjan......8thjan......15thjan.....22ndjan.....
sal:100.........200.........300.........400.........
TABLE B
col:col1........col2........col3........col4........col5...col104
WEEk:8thjan......15thjan.....22thjan.....29ndjan.....
sal:200.........300.........450.........500.........
表定义如下:
DESC FCT_SALES_SUMMARY
CREATE TABLE FCT_SALES_SUMMARY
(
PROD_SID NUMBER,
CURR_CUST_SID NUMBER,
BIO_ID NUMBER,
CURR_TERR_SID NUMBER,
FRAN_SID NUMBER,
CURR_EMP_SID NUMBER,
ESTMT_FLG VARCHAR2(1 BYTE),
PROD_WAC_PRC NUMBER(15,4),
SALE_RATIO NUMBER,
WK_UNITSCUR NUMBER(15,4),
WK_UNITS1 NUMBER(15,4),
WK_UNITS2 NUMBER(15,4),
WK_UNITS3 NUMBER(15,4),
WK_UNITS4 NUMBER(15,4),
WK_UNITS5 NUMBER(15,4),
WK_UNITS6 NUMBER(15,4),
WK_UNITS7 NUMBER(15,4),
WK_UNITS8 NUMBER(15,4),
WK_UNITS9 NUMBER(15,4),
WK_UNITS10 NUMBER(15,4),
WK_UNITS11 NUMBER(15,4),
WK_UNITS12 NUMBER(15,4),
WK_UNITS13 NUMBER(15,4),
WK_UNITS14 NUMBER(15,4),
WK_UNITS15 NUMBER(15,4),
WK_UNITS16 NUMBER(15,4),
WK_UNITS17 NUMBER(15,4),
WK_UNITS18 NUMBER(15,4),
WK_UNITS19 NUMBER(15,4),
WK_UNITS20 NUMBER(15,4),
WK_UNITS21 NUMBER(15,4),
WK_UNITS22 NUMBER(15,4),
WK_UNITS23 NUMBER(15,4),
WK_UNITS24 NUMBER(15,4),
WK_UNITS25 NUMBER(15,4),
WK_UNITS26 NUMBER(15,4),
WK_UNITS27 NUMBER(15,4),
WK_UNITS28 NUMBER(15,4),
WK_UNITS29 NUMBER(15,4),
WK_UNITS30 NUMBER(15,4),
WK_UNITS31 NUMBER(15,4),
WK_UNITS32 NUMBER(15,4),
WK_UNITS33 NUMBER(15,4),
WK_UNITS34 NUMBER(15,4),
WK_UNITS35 NUMBER(15,4),
WK_UNITS36 NUMBER(15,4),
WK_UNITS37 NUMBER(15,4),
WK_UNITS38 NUMBER(15,4),
WK_UNITS39 NUMBER(15,4),
WK_UNITS40 NUMBER(15,4),
WK_UNITS41 NUMBER(15,4),
WK_UNITS42 NUMBER(15,4),
WK_UNITS43 NUMBER(15,4),
WK_UNITS44 NUMBER(15,4),
WK_UNITS45 NUMBER(15,4),
WK_UNITS46 NUMBER(15,4),
WK_UNITS47 NUMBER(15,4),
WK_UNITS48 NUMBER(15,4),
WK_UNITS49 NUMBER(15,4),
WK_UNITS50 NUMBER(15,4),
WK_UNITS51 NUMBER(15,4),
WK_UNITS52 NUMBER(15,4),
WK_UNITS53 NUMBER(15,4),
WK_UNITS54 NUMBER(15,4),
WK_UNITS55 NUMBER(15,4),
WK_UNITS56 NUMBER(15,4),
WK_UNITS57 NUMBER(15,4),
WK_UNITS58 NUMBER(15,4),
WK_UNITS59 NUMBER(15,4),
WK_UNITS60 NUMBER(15,4),
WK_UNITS61 NUMBER(15,4),
WK_UNITS62 NUMBER(15,4),
WK_UNITS63 NUMBER(15,4),
WK_UNITS64 NUMBER(15,4),
WK_UNITS65 NUMBER(15,4),
WK_UNITS66 NUMBER(15,4),
WK_UNITS67 NUMBER(15,4),
WK_UNITS68 NUMBER(15,4),
WK_UNITS69 NUMBER(15,4),
WK_UNITS70 NUMBER(15,4),
WK_UNITS71 NUMBER(15,4),
WK_UNITS72 NUMBER(15,4),
WK_UNITS73 NUMBER(15,4),
WK_UNITS74 NUMBER(15,4),
WK_UNITS75 NUMBER(15,4),
WK_UNITS76 NUMBER(15,4),
WK_UNITS77 NUMBER(15,4),
WK_UNITS78 NUMBER(15,4),
WK_UNITS79 NUMBER(15,4),
WK_UNITS80 NUMBER(15,4),
WK_UNITS81 NUMBER(15,4),
WK_UNITS82 NUMBER(15,4),
WK_UNITS83 NUMBER(15,4),
WK_UNITS84 NUMBER(15,4),
WK_UNITS85 NUMBER(15,4),
WK_UNITS86 NUMBER(15,4),
WK_UNITS87 NUMBER(15,4),
WK_UNITS88 NUMBER(15,4),
WK_UNITS89 NUMBER(15,4),
WK_UNITS90 NUMBER(15,4),
WK_UNITS91 NUMBER(15,4),
WK_UNITS92 NUMBER(15,4),
WK_UNITS93 NUMBER(15,4),
WK_UNITS94 NUMBER(15,4),
WK_UNITS95 NUMBER(15,4),
WK_UNITS96 NUMBER(15,4),
WK_UNITS97 NUMBER(15,4),
WK_UNITS98 NUMBER(15,4),
WK_UNITS99 NUMBER(15,4),
WK_UNITS100 NUMBER(15,4),
WK_UNITS101 NUMBER(15,4),
WK_UNITS102 NUMBER(15,4),
WK_UNITS103 NUMBER(15,4),
WK_UNITS104 NUMBER(15,4),
WK_UNITS105 NUMBER(15,4)
)
我们需要逐周比较数据。
答案 0 :(得分:0)
根据目前为止提供的信息,我会说First Normal Form将成为你的朋友。
所以你的桌子会变得更像这样:
CREATE TABLE FCT_SALES_SUMMARY
(
PROD_SID NUMBER,
CURR_CUST_SID NUMBER,
BIO_ID NUMBER,
CURR_TERR_SID NUMBER,
FRAN_SID NUMBER,
CURR_EMP_SID NUMBER,
ESTMT_FLG VARCHAR2(1 BYTE),
PROD_WAC_PRC NUMBER(15,4),
SALE_RATIO NUMBER,
WK_UNITSCUR NUMBER(15,4),
WEEK_NUMBER NUMBER,
WK_UNITS NUMBER(15,4)
)
...每周一行(由上面的WEEK_NUMBER指定 - 称之为对您的应用最有意义的任何内容)。
现在你不会丢失任何你不想丢失的数据:WEEK_NUMBER(或其他)只是每周增加一个。
它会使表的存储要求更高吗?是。光盘空间很便宜。
它会使查询变慢吗?可能,但计算机很快......; - )