免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: tigerfish
打印 上一主题 下一主题

一个根据时间分组求和的问题 [复制链接]

论坛徽章:
0
31 [报告]
发表于 2005-04-21 17:00 |只看该作者
最初由 wchal 发布
[B]

要記住itpub上的牛人很多,
有問題就到這來問就行了.
單獨問我一個勢單力薄.搞定不了.:sweat2: [/B]


能不能不用游標實現阿,weitayao 用游標實現了我相要的,但是能不\'能不用游標呢

论坛徽章:
0
32 [报告]
发表于 2005-04-21 17:18 |只看该作者
最初由 chichunhua 发布
[B]

能不能不用游標實現阿,weitayao 用游標實現了我相要的,但是能不\'能不用游標呢 [/B]


我的方法沒有用游標啊!
為什麼不行???
你再試試.
我的代碼是測試過的!
當然如果你想這樣顯票當然不行.
M05-0968 D32052 -32000 38000 2005/05/06 -1
M05-0958 D32052 19000 19000 2005/04/28 1
M05-0936 D32052 2000 1000 2005/04/30 1
M05-0935 D32052 11000 11000 2005/05/04 1
...................................0
M05-0203 D32052 -54000 20000 2005/05/19 -1
M05-0205 D32052 3000 2000 2005/05/11 1
M05-0206 D32052 41000 41000 2005/05/12 1
M05-0208 D32052 10000 10000 2005/05/18 1
....................................0
M05-0305 D32052 -25000 11000 2005/05/25 -1
M05-0306 D32052 3000 3000 2005/05/21 1
M05-0307 D32052 28000 28000 2005/05/23 1
..............................6000

论坛徽章:
0
33 [报告]
发表于 2005-04-21 17:23 |只看该作者
我的方法得到以下結果
原表:
AA        10        2005-01-01 00:00:00.000        1
AA        -30        2004-02-19 00:00:00.000        -1
AA        10        2005-01-03 00:00:00.000        1
AA        10        2005-01-05 00:00:00.000        1
AA        -30        2005-01-09 00:00:00.000        -1
AA        10        2005-02-03 00:00:00.000        1
AA        10        2005-02-05 00:00:00.000        1
AA        -30        2005-02-09 00:00:00.000        -1
AA        10        2005-02-13 00:00:00.000        1
AA        10        2005-02-15 00:00:00.000        1

結果:
AA        2004-02-19 00:00:00.000        -30
AA        2005-01-09 00:00:00.000        0
AA        2005-02-09 00:00:00.000        -10
AA        2005-02-13 00:00:00.000        10
AA        2005-02-15 00:00:00.000        10

论坛徽章:
0
34 [报告]
发表于 2005-04-21 17:24 |只看该作者
SELECT * FROM ABC
UNION ALL
SELECT A,SUM_B,NEW_C,0 FROM
(SELECT A,NEW_C,SUM(B) SUM_B FROM
(SELECT         BBB.A, BBB.B,
        CASE BBB.D WHEN -1 THEN BBB.C ELSE COALESCE((SELECT MIN(AAA.C) FROM ABC AAA WHERE AAA.D = -1 AND AAA.C >BBB.C),BBB.C) END NEW_C,
        BBB.D
        FROM ABC BBB)TEMP_TABLE
GROUP BY A,NEW_C) TEMP_TABLE2
ORDER BY C, D DESC


得到:
AA        -30        2004-02-19 00:00:00.000        0
AA        -30        2004-02-19 00:00:00.000        -1
AA        10        2005-01-01 00:00:00.000        1
AA        10        2005-01-03 00:00:00.000        1
AA        10        2005-01-05 00:00:00.000        1
AA        0        2005-01-09 00:00:00.000        0
AA        -30        2005-01-09 00:00:00.000        -1
AA        10        2005-02-03 00:00:00.000        1
AA        10        2005-02-05 00:00:00.000        1
AA        -10        2005-02-09 00:00:00.000        0
AA        -30        2005-02-09 00:00:00.000        -1
AA        10        2005-02-13 00:00:00.000        1
AA        10        2005-02-13 00:00:00.000        0
AA        10        2005-02-15 00:00:00.000        1
AA        10        2005-02-15 00:00:00.000        0

论坛徽章:
0
35 [报告]
发表于 2005-04-21 17:24 |只看该作者
為甚麼測你的是正確的但是測我的庫中的又是錯誤的呢,好奇怪!!

论坛徽章:
0
36 [报告]
发表于 2005-04-22 09:40 |只看该作者
自已多試試看看你哪里改錯了.我看了你的book1.xls.
你多試試我寫的那些,最重要的是理解!

论坛徽章:
0
37 [报告]
发表于 2005-04-22 10:07 |只看该作者
最初由 wchal 发布
[B]自已多試試看看你哪里改錯了.我看了你的book1.xls.
你多試試我寫的那些,最重要的是理解! [/B]


謝謝你,我還在想,為甚麼測你的就ok ,但是測我的就不行 ,我再好好想想,非常感謝:right:

论坛徽章:
0
38 [报告]
发表于 2005-04-26 14:27 |只看该作者
最初由 weiyatao 发布
[B]其实思路已经有了,你可以自己改一下的 [/B]

weiyatao兄,如果我想時間取最小的時間呢,如何把你的存儲過程改一下阿,就是
D42023      3000      2005/04/26
D42023      3000      2005/04/28
D42023     -6000      2005/05/01
我想得到的結果是
D42023       0           2005/04/26
就是時間取它上面的最前面的時間,謝謝了,

论坛徽章:
0
39 [报告]
发表于 2005-04-26 16:17 |只看该作者
先试一下这个能不能达到最大日期的要求!

SELECT 項目編號,NEW_交期,SUM(計劃數量) NEW_QTY  FROM
(SELECT B.項目編號, B.計劃數量,
        CASE 緊急度 WHEN -1 THEN 交期 ELSE COALESCE((SELECT MIN(交期) FROM TEST A WHERE A.緊急度 = -1 AND A.交期 > B.交期),B.交期) END NEW_交期,
        B.緊急度
        FROM TEST B)TEMP_TABLE
        GROUP BY 項目編號,NEW_交期

论坛徽章:
0
40 [报告]
发表于 2005-04-26 16:27 |只看该作者
沒有,都沒達到阿,時間沒有達到,數量也不對,
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP