在出入庫時有兩種記錄:入庫和出庫.
入庫有 :起號~迄號
出庫也有:起號~迄號.
現需要對入庫和出庫的票據進行合併,即在入庫紀錄中去除出庫的記錄.
有如下情況:
狀況一:
合併前:
日 期 起 號 迄 號
入 11/1 1 10
入 11/2 11 15
入 11/3 16 20
合併後:
起 號 迄 號 張 數
1 10 10
11 15 5
16 20 5
狀況二:
合併前:
日 期 起 號 迄 號
入 11/1 1 10
入 11/2 11 15
入 11/3 16 20
出 11/4 1 10
合併後:
起 號 迄 號 張 數
11 15 5
16 20 5
狀況三:
合併前:
日 期 起 號 迄 號
入 11/1 1 10
入 11/2 11 15
入 11/3 16 20
出 11/4 8 13
合併後:
起 號 迄 號 張 數
1 7 7
14 15 2
16 20 5
狀況四:
合併前:
日 期 起 號 迄 號
入 11/1 1 10
入 11/2 11 15
入 11/3 16 20
出 11/4 8 17
合併後:
起 號 迄 號 張 數
1 7 7
18 20 3
狀況五:
日 期 起 號 迄 號
入 11/1 1 10
入 11/2 11 15
入 11/3 16 20
出 11/4 8 9
合併後:
起 號 迄 號 張 數
1 7 7
10 10 1
18 20 3
11 15 5
16 20 5
等等.請提供一算法實現,謝謝!
入庫有 :起號~迄號
出庫也有:起號~迄號.
現需要對入庫和出庫的票據進行合併,即在入庫紀錄中去除出庫的記錄.
有如下情況:
狀況一:
合併前:
日 期 起 號 迄 號
入 11/1 1 10
入 11/2 11 15
入 11/3 16 20
合併後:
起 號 迄 號 張 數
1 10 10
11 15 5
16 20 5
狀況二:
合併前:
日 期 起 號 迄 號
入 11/1 1 10
入 11/2 11 15
入 11/3 16 20
出 11/4 1 10
合併後:
起 號 迄 號 張 數
11 15 5
16 20 5
狀況三:
合併前:
日 期 起 號 迄 號
入 11/1 1 10
入 11/2 11 15
入 11/3 16 20
出 11/4 8 13
合併後:
起 號 迄 號 張 數
1 7 7
14 15 2
16 20 5
狀況四:
合併前:
日 期 起 號 迄 號
入 11/1 1 10
入 11/2 11 15
入 11/3 16 20
出 11/4 8 17
合併後:
起 號 迄 號 張 數
1 7 7
18 20 3
狀況五:
日 期 起 號 迄 號
入 11/1 1 10
入 11/2 11 15
入 11/3 16 20
出 11/4 8 9
合併後:
起 號 迄 號 張 數
1 7 7
10 10 1
18 20 3
11 15 5
16 20 5
等等.請提供一算法實現,謝謝!
入 11/1 1
入 11/1 2
入 11/1 3
....
入 11/1 10
出 11/2 1
出 11/2 2
....表面上看,这增大了数据量,但是插入,更新,还有合并时候的查询,其业务逻辑都是最简单,同时也是最符合实际情况的。我估计你们只是最后合并后的那张类似报表的东西里面需要起迄号,而前面那张流水账的表,并不是必须的(即使UI上用户输入的是起迄号,insert/update也只是个循环)否则你们的设计虽然能大量节约数据量,但是却可能导致超大量的计算问题,实际性价比应该更低
比如
入 11/1 1 10
出 11/2 10 10
入 11/2 11 15
出 11/3 4 5
出 11/4 1 1
出 11/5 12 13
出 11/6 2 3
......而且,即使能想出算法来,万一业务逻辑稍有变更,可能又要推翻。你现有表结构的算法正在思考中...
偶不知到您所想改表结构會是什麼樣的.
其實在這個問題中,它是不對數據庫中表做insert 或 update,
該用例只是把數據庫中表查詢出來做上述的操作顯示給用戶.
是當月的第一天到當日查詢的記錄.
虽然看得懂,但是实在不能像SC那样引起我脑细胞的“共鸣”,看得实在吃力:)
能改表结构吗?日期 号
入 11/1 1
入 11/1 2
入 11/1 3
....
入 11/1 10
出 11/2 1
出 11/2 2
....========================
就是把原来1-10放到1条记录,变成10条记录。想了半天,你们原来的做法,只能写存储过程
其實象您這樣更改表的結構,偶感到也會加大數據庫操作的負擔,
如願來需要insert 一筆,現在需要insert 10筆,當然,具體的情景需要做出衡量.
存儲過程是不允許用的了,只能在ap程式中實現.
是否有甚麼數學方法的東東能提供一個好的解決方案?