我有一张桌子lnd_wkly_plan_rx_summary
和
山口umns pd_end_dt, nrx_cnt
包含数据
PD_END_DT NRX_CNT
12/26/08 1,178.75
12/19/08 2,027.12
12/12/08 1,907.08
12/05/08 2,092.90
11/28/08 1,236.44
11/21/08 1,857.82
11/14/08 1,817.55
11/07/08 1,800.54
10/31/08 1,985.13
i need to put a join on same table lnd_wkly_plan_rx_summary
and compare data of PD_END_DT,NRX_CNT weekly
so dat i can get difference of NRX_CNT as zero
决赛桌将包含以下列
PD_END_DT NRX_CNT DELTA
表的快照是
MKT_ID PROD_GRP_NBR CHNL_CD PERIOD_FILE_TYPE PD_END_DT NRX_CNT NRX_QTY
02601 00000020 1 W 10/12/07 2,041.64 9,706.23
02601 00000020 1 W 10/05/07 2,122.89 10,593.91
02601 00000020 1 W 09/28/07 2,072.10 10,247.32
02601 00000020 1 W 09/21/07 2,070.78 10,042.91
02601 00000020 1 W 09/14/07 2,120.01 10,493.93
02601 00000020 1 W 09/07/07 1,828.18 8,867.92
02601 00000020 1 W 08/31/07 2,294.99 11,115.15
02601 00000020 1 W 08/24/07 2,133.24 10,434.83
02601 00000020 1 W 08/17/07 2,186.42 10,739.04
CHNL_CD VARIES AS 1或2 PROD_GRP_NBR 20-200 PERIOD_FILE_TYPE是W
.........这只是获得最终结果的第一步............
答案 0 :(得分:2)
如果您想将NRX_CNT
列与前一周进行比较,您可以使用分析函数,它将比自连接更快更清晰:
SQL> SELECT pd_end_dt, nrx_cnt,
2 nrx_cnt - lag(nrx_cnt) over (ORDER BY pd_end_dt) delta
3 FROM lnd_wkly_plan_rx_summary
4 ORDER BY pd_end_dt;
PD_END_DT NRX_CNT DELTA
----------- ---------- ----------
31/10/2008 1985,13
07/11/2008 1800,54 -184,59
14/11/2008 1817,55 17,01
21/11/2008 1857,82 40,27
28/11/2008 1236,44 -621,38
05/12/2008 2092,9 856,46
12/12/2008 1907,08 -185,82
19/12/2008 2027,12 120,04
26/12/2008 1178,75 -848,37
答案 1 :(得分:1)
如果你想找到具有相同NRX_CNT(差值= 0)的周的任何组合,我会选择类似的东西:
SELECT *
FROM lnd_wkly_plan_rx_summary as t1
INNER JOIN lnd_wkly_plan_rx_summary as t2 on t1.nrx_cnt = t2.nrx_cnt
答案 2 :(得分:0)
您使用的是哪种数据库类型? SQL Server 2005?
选择A.PD_END_DT为'LAST_PD_END_DT',A.NRX_CNT - B.NRX_CNT为'DELTA' 来自lnd_wkly_plan_rx_summary作为A. 内连接lnd_wkly_plan_rx_summary为B 在A.PD_END_DT = dateadd(d,7,B.PD_END_DT)
答案 3 :(得分:0)
我在这里缺少的是一个加入桌子的citeriea。 无论如何 - 如果没有标准,你会得到 对于每个PD_END_DT,该表中每条记录的一组记录显示差异 查询如下所示: SELECT A.PD_END_DT,A.NRX_CNT,A.NRX_CNT - B.NRX_CNT为DELTA FROM lnd_wkly_plan_rx_summary A,lnd_wkly_plan_rx_summary B
我会看到一个“可加入的字段” SELECT A.PD_END_DT,A.NRX_CNT,A.NRX_CNT - B.NRX_CNT为DELTA 来自lnd_wkly_plan_rx_summary A. 内部联接 lnd_wkly_plan_rx_summary B ON A.JoinableField = B.JoinableField