非技術 工作記錄 3

2021-09-02 03:54:05 字數 3154 閱讀 4867

今天繼續聊下報表,還是以乙個普通的進銷存報表為例。

情景:1、 銷售一台手機則往銷售記錄表插入一條記錄,狀態為u。庫存記錄表該記錄移至庫存歷史表。

2、使用者退機則在庫存記錄表裡面新增一筆記錄,狀態為退機,同時把以前的那條銷售記錄置為e(失效),  同時把庫存歷史錶該記錄刪除。

3、如果門店把手機退給供貨商,則把庫存記錄表中該記錄狀態修改為退機在途,同時在出入庫表中新增一筆出庫記錄,狀態為出庫完成。

4、供貨商收到退的手機,則把庫存記錄表的歸屬組織改為供貨商,狀態改為供貨商入庫,同時在出入庫表中新增一筆入庫記錄,狀態為入庫完成。

如果按上面的情景寫一張門店進銷存報表,怎麼寫呢?

如果你寫成這樣:

門店名稱      開始庫存    銷售量    退機量    庫存結餘

測試門店         5                  2           1             4

一開始我也是這麼寫的,但是你沒有考慮下面的情況

1、我怎麼知道是什麼時候統計的?所以得加上統計時間列。

2、我想知道手機如三星 g100今天的進銷存情況怎麼辦,統計精度得具體到手機的機型

3、我怎麼區分使用者退機和退給供貨商,退機量得分為使用者退和返廠量。

4、退機已出庫,為什麼看不到退機數? 在供貨商沒入庫之前,該庫存一直屬於門店,所以為了直觀的表示今天我退了3臺手機給供貨商,但供貨商沒入庫,得加上退機在途。

綜合上述,報表的這樣:

統計時間      門店名稱  機型名稱  開始庫存  銷售量  使用者退   返廠量  退機在途   庫存結餘

2014-07-18    xx           xx              5            2           1            0         1                4

你以為這樣就完了。還有什麼情況?

這裡要重點分析下銷售和退機,銷售量不就是

select count(*) from 銷售記錄表  where 狀態='u' and record_date=統計時間
退機量不就是:

select  count(*) from 庫存記錄表 where  狀態=使用者退 and 記錄時間=統計時間
下面我分以下情況:

1、當天賣了臺三星g100,且使用者當天沒有退,也就是無退機記錄,銷售量=

select count(*) from 銷售記錄表  where 狀態='u' and record_date=統計時間
2、當天使用者把昨天買的三星g100退了,沒有在買其他手機,則使用者退=。

select  count(*) from 庫存記錄表 where  狀態=使用者退 and 記錄時間=統計時間
3、當天上午使用者買了臺三星g99,下午使用者又把它退了,換了臺三星g99,則銷售量=

select count(*) from 銷售記錄表  where 狀態='u' and record_date=統計時間
使用者退=

select  count(*) from 庫存記錄表 where  狀態=使用者退 and 記錄時間=統計時間
這樣算還是有問題,如開始庫存為2,上午賣了一台,銷售為1,下午使用者換了臺手機,則使用者退=1,銷量=1,庫存結餘=2-1+1=2,實際庫存為1,所以的減掉換機數

select count(*) from 銷售記錄表 a,庫存記錄表 b where a.狀態=e and b.狀態=使用者退 and exists(select 1 from 銷售記錄表 b where b.狀態='u' and b.銷售時間》=a.銷售時間 and b.銷售時間《統計時間+1 and b.機型=a.機型)

and a.銷售時間=統計時間

這裡的換機數視為銷售量。

4、當天上午使用者買了臺三星g100,下午又退掉了,沒買其他手機。則時候銷售量=0,退機數=1,庫存=開始庫存2+退機數=3,憑空多了一台手機,也是不對的。

還得統計當天買了又退了且沒有再買的數量視為銷售量。

select count(*) from 銷售記錄表 a,庫存記錄表 b where a.狀態=e and b.狀態=使用者退 and a.銷售時間=統計時間 and not exists( select 1 from 銷售記錄表 t where t.機型=a.機型 and t.銷售時間=統計時間  and t.客戶姓名=a.客戶姓名)
綜合上面的4種情況,寫出來的才是正確的。我也只考慮了上面4中情況,歡迎提出更好的方法。

-------------------------------------7.19修改----------------------------------

第三和第四種情況可以合併,只需要統計賣了又退了的數量,不用管是否還有後繼操作,如再銷售。

最終的報表可能是這樣子的:

統計時間       門店名稱  機型名稱  開始庫存  銷售量  使用者退   返廠量  退機在途   庫存結餘

2014-07-18     xx         三星g1     2               1           0           0            0               1(情況1)

2014-07-18     xx         三星g2     2               0           1           0            0               3(情況2)

2014-07-18      xx        三星g3     2               2           1           0            0               1(情況3)

2014-07-18      xx        三星g4     2               1           1           0            0               2(情況4)

上面的報表只是寫了一部分,還得考慮退給供貨商的數量,1,當天退供貨商當天入庫 2,當天退供貨商當天沒有入庫。

囉囉嗦嗦寫了這麼多,不寫了,iteye的文字編輯器js**沒寫好,多寫了幾行就很卡,卡的編輯器變形了,按鈕都不見了。

全文完。

從非技術角度審視技術工作

兩年多沒寫部落格了,今天把這兩年在創業公司做專案總負責人的感悟梳理一下。公司是做b2b電商平台,出版行業,目前處於產品與市場接軌困難的境地,我負責公司各項目的技術實施安排。首先,工作的態度和熱情,比能力重要得多。所謂的工作態度,也就是思維模式,比如遇到問題,不是逃避,而是積極面對。a 領導,我們最近...

新專案上線準備工作(非技術工作)

本文涉及到的都是非技術性的工作,但是對專案的順利上線也是必不可少的。對,你沒看錯,第一點要將的不是準備什麼賬號,就是講 資訊對稱 資訊對稱有多重要呢?我來打個比方你就清楚了,假如公司領導知道一件我不知道的事,可能會導致我前期做的所有工作都白費了,就是這麼重要。資訊對稱,不僅是領導和員工要資訊對稱,同...

技術工作者如何學習

2.曹樂大神對於如何成為技術大牛的建議 怎麼學習一門新技術 第一,找到你要學習的這個領域體系的正規化 pattern 第二,針對每個正規化刻意的反覆學習和練習 第三,及時反饋。要對目標領域進行分解,並對每個階段進行深入的學習,反覆咀嚼,得到自己的心得,最重要的第三點,要在實踐中進行總結,得到反饋 也...