VerySource

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 877|回复: 7

請提供一算法實現,謝謝!

[复制链接]

1

主题

4

帖子

5.00

积分

新手上路

Rank: 1

积分
5.00
发表于 2020-1-27 16:20:01 | 显示全部楼层 |阅读模式
在出入庫時有兩種記錄:入庫和出庫.
入庫有  :起號~迄號
出庫也有:起號~迄號.
現需要對入庫和出庫的票據進行合併,即在入庫紀錄中去除出庫的記錄.
有如下情況:
狀況一:
     合併前:
            日 期    起 號    迄 號
     入     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
等等.請提供一算法實現,謝謝!
回复

使用道具 举报

0

主题

63

帖子

42.00

积分

新手上路

Rank: 1

积分
42.00
发表于 2020-2-22 16:15:01 | 显示全部楼层
能改表结构吗?

日期 号
入 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
......

而且,即使能想出算法来,万一业务逻辑稍有变更,可能又要推翻。

你现有表结构的算法正在思考中...
回复

使用道具 举报

1

主题

4

帖子

5.00

积分

新手上路

Rank: 1

积分
5.00
 楼主| 发表于 2020-2-23 15:00:01 | 显示全部楼层
嗨!tellyou謝謝.
偶不知到您所想改表结构會是什麼樣的.
其實在這個問題中,它是不對數據庫中表做insert 或 update,
該用例只是把數據庫中表查詢出來做上述的操作顯示給用戶.
是當月的第一天到當日查詢的記錄.
回复

使用道具 举报

0

主题

1

帖子

2.00

积分

新手上路

Rank: 1

积分
2.00
发表于 2020-2-23 18:15:01 | 显示全部楼层
有点难
回复

使用道具 举报

0

主题

63

帖子

42.00

积分

新手上路

Rank: 1

积分
42.00
发表于 2020-3-1 01:15:01 | 显示全部楼层
对阿,我当然知道你要什么!

我是说,你们要select from的那张表的结构,很难出来你们要的结果。所以,我建议的解决这个问题的方法,不仅仅是如何select,而是那张from的表的结构“最好”不要是现在的样子(如果你们能改的话)。

BTW,mind if not using TC?
虽然看得懂,但是实在不能像SC那样引起我脑细胞的“共鸣”,看得实在吃力:)
回复

使用道具 举报

1

主题

4

帖子

5.00

积分

新手上路

Rank: 1

积分
5.00
 楼主| 发表于 2020-3-2 00:45:01 | 显示全部楼层
hi~tellyou.很無奈.我們是沒有權限去更改表結構的.但是我想知道你要改動的樣子.
回复

使用道具 举报

0

主题

63

帖子

42.00

积分

新手上路

Rank: 1

积分
42.00
发表于 2020-3-6 20:45:01 | 显示全部楼层
回复人:tellyou ( ) 信誉:125        2017-01-04 10:13:34        得分:0


能改表结构吗?

日期 号
入 11/1 1
入 11/1 2
入 11/1 3
....
入 11/1 10
出 11/2 1
出 11/2 2
....

========================
就是把原来1-10放到1条记录,变成10条记录。

想了半天,你们原来的做法,只能写存储过程
回复

使用道具 举报

1

主题

4

帖子

5.00

积分

新手上路

Rank: 1

积分
5.00
 楼主| 发表于 2020-3-9 08:00:01 | 显示全部楼层
謝謝!
其實象您這樣更改表的結構,偶感到也會加大數據庫操作的負擔,
如願來需要insert 一筆,現在需要insert 10筆,當然,具體的情景需要做出衡量.
存儲過程是不允許用的了,只能在ap程式中實現.
是否有甚麼數學方法的東東能提供一個好的解決方案?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|CopyRight © 2008-2023|verysource.com ( 京ICP备17048824号-1 )

快速回复 返回顶部 返回列表