我有一個包含訂單表和庫存表的數據庫。
訂單商品表每1個數量的佈局有1條記錄,所以如果一個人下單7'ABC和4'XYZ的訂單,我會得到11個記錄。隊列數量的SQL查詢幫助
id, item, qtyNum 01 ABC 1 02 ABC 2 03 ABC 3 04 ABC 4 05 ABC 5 06 ABC 6 07 ABC 7 08 XYZ 1 09 XYZ 2 10 XYZ 3 11 XYZ 4
庫存表中有一個量/項目每個位置的佈局,這樣我就可以有庫存的東西20,但它可以(在最壞的情況下),在20個不同的地點。因此,對於我們的示例,我可能有以下庫存:
Qty, Item, Loc, Date 3 'ABC' in Location L1 with date 1990 2 'ABC' in Location L2 with date 1992 5 'ABC' in Location L3 with date 2003 4 'ABC' in Location LH with date 2004 1 'XYZ' in Location L4 with date 1990 2 'XYZ' in Location L5 with date 1993 9 'XYZ' in Location L6 with date 2001 2 'XYZ' in Location LJ with date 2004
* H和J沒有特別意義!只要驅動點回家,他們是最新
結果集應該拉儘可能多的從最老的位置上的第一,所以在這個例子中我結束了以下「挑選隊列」:
Pick 3 'ABC' from L1 Pick 2 'ABC' from L2 Pick 2 'ABC' from L3 Pick 1 'XYZ' from L4 Pick 2 'XYZ' from L5 Pick 1 'XYZ' from L6
我的確有一個解決方案,它涉及到很多視圖,這些視圖通過外連接和瘋狂的東西連接多次,我只是很好奇這個問題是否存在簡單/優雅的解決方案?我可以在代碼中做到這一點沒有問題,但在SQL中我不是大師。
MSSQL 2008
在你的訂單商品表中,qtyNum應該增加每一行,或者每行應該是1。如果他們下訂單7個ABC項目,看起來好像你認爲該表格會顯示28個數量。或者我誤解了qtyNum專欄的觀點? – 2009-10-23 18:36:04
它只是提供項目順序的額外數據。其類似項目ID 10是該訂單中項目「XYZ」的第三數量。 對於所有的意圖和目的,可能只是忽略qtyNum – Hatch 2009-10-23 18:41:25