現(xiàn)數(shù)據(jù)庫(kù)有三張表,分別是Depot(倉(cāng)庫(kù)表,存儲(chǔ)倉(cāng)庫(kù)基本信息的),Container(貨位表,一個(gè)倉(cāng)庫(kù)可以劃分為若干個(gè)貨位,這個(gè)表是存儲(chǔ)貨位基本信息的),Stock(庫(kù)存表,存儲(chǔ)商品庫(kù)存信息的)。倉(cāng)庫(kù)表和貨位表是一對(duì)多的關(guān)系,既一個(gè)倉(cāng)庫(kù)對(duì)應(yīng)多個(gè)貨位。而庫(kù)存表中的結(jié)構(gòu)如下:………………………………………………………………ID 主鍵 自動(dòng)增量ConID 存貨儲(chǔ)位IDGoodsID 存貨商品IDInCount 進(jìn)貨數(shù)量OutCount 出貨數(shù)量LastCount 最后庫(kù)存數(shù)(庫(kù)存數(shù)基本以這個(gè)字段為準(zhǔn))………………………………………………………………另外,庫(kù)存表是以流水的方式記錄商品信息的,如商品ID為1的商品庫(kù)存記錄可以如下
ID? ConID GoodsID InCount OutCount LastCount____________________________________________1?? 34?????? 1?????? 40?????? 0??????? 40?? 2?? 34?????? 1?????? 0??????? 26?????? 143?? 34?????? 1?????? 5???????? 0??????? 194?? 34?????? 1?????? 0??????? 17??????? 25?? 21?????? 1?????? 67?????? 0??????? 676?? 21?????? 1?????? 0??????? 10?????? 577?? 21?????? 1?????? 3???????? 0??????? 608?? 7??????? ?1?????? 5???????? 0???????? 59?? 7???????? 1?????? 0???????? 5???????? 0
上面的數(shù)據(jù)是通過(guò)Select * From Stock Where GoodsID=1查詢出來(lái)的,我們?nèi)绻氩樵兂鲞@個(gè)商品在某個(gè)貨位上的庫(kù)存數(shù)可以使用SQL語(yǔ)句Select Top(1) LastCount From Stock Where GoodsID=1 And ConID=21 Order By ID DESC查詢,結(jié)果就是當(dāng)前商品在指定貨位上的庫(kù)存數(shù)。這里我們得到是60,如果將條件ConID改為34,則我們得到的庫(kù)存數(shù)是67,這個(gè)結(jié)果是正確的。這個(gè)SQL語(yǔ)句之所以加上Top(1),那是因?yàn)閹?kù)存表是以流水的方式記錄庫(kù)存的,既最新的那條記錄的LastCount字段的值才是最新的庫(kù)存。現(xiàn)在我描述下貨位表和倉(cāng)庫(kù)表的關(guān)系,為了簡(jiǎn)單起見,我去除無(wú)相關(guān)字段,倉(cāng)庫(kù)表如下:………………………………………………………………ID 主鍵 自動(dòng)增量Name 倉(cāng)庫(kù)名稱………………………………………………………………
貨位表結(jié)構(gòu)如下………………………………………………………………ID 主鍵 自動(dòng)增量Name 貨位名稱DepotID 所屬倉(cāng)庫(kù)ID………………………………………………………………
現(xiàn)有倉(cāng)庫(kù)3個(gè),名稱分別為商品倉(cāng),成品一倉(cāng),成品二倉(cāng),其中商品倉(cāng)有兩個(gè)貨位,分別是34和7號(hào)貨位(上面我們查詢1號(hào)商品庫(kù)存信息中有這些貨位的存貨記錄,見ConID列);成品一倉(cāng)有一個(gè)貨位,既3號(hào)貨位;成品二倉(cāng)也只有一個(gè)貨位,既21號(hào)貨位。呵呵,說(shuō)了那么多了,問(wèn)題終于開始了。我現(xiàn)在要查詢出商品1在各個(gè)倉(cāng)庫(kù)的存貨情況,根據(jù)上面我們查詢庫(kù)存得到的結(jié)果來(lái)看,我們可以知道商品1在商品倉(cāng)的存貨數(shù)量是2+0,既商品倉(cāng)貨位34的數(shù)量加上貨位7的數(shù)量;而商品1在成品一倉(cāng)的存貨記錄為0,成品二倉(cāng)的存貨記錄為60?,F(xiàn)在我需要得到如下的結(jié)果
DepotID? GoodsID? DepotName StockCount______________________________________? 1???????? 1?????? 商品倉(cāng)???? 2? 3???????? 1????? 成品二倉(cāng)??? 60
成品一倉(cāng)沒有商品1的存貨記錄,不予顯示。求SQL語(yǔ)句,可以是一個(gè)存儲(chǔ)過(guò)程,傳入?yún)?shù)GoodsID獲取上面的那個(gè)表。萬(wàn)分感謝,分不夠可以加,讓我見識(shí)下。
求一段SQL語(yǔ)句,難倒我兩天了。
qq_遁去的一_1
2018-12-06 12:32:53