當前位置:首頁 » 編程語言 » sql入庫前

sql入庫前

發布時間: 2022-03-07 19:02:53

『壹』 入庫單的 sql 操作

你可以增加一個實時庫存表,保留產品的實時庫存,實時庫存表根據產品、批次進行存儲,增加批次是為了先進先出,然後在入庫的時候根據產品檢查實時庫存表商品是否存在,存在則修改數量,不存在則插入產品。

『貳』 怎麼用sql實現庫存先進先出

create table 表1(貨號 varchar(20),批次 int ,數量 int)

create table 表2(貨號 varchar(20) ,數量 int)
/*------------------------------*/
insert into 表1
select '001', 1, 100 union all
select '001', 2, 200 union all
select '001', 3, 300

/*------------------------------*/
insert into 表2
select '001', 400
/*------------------------------*/
select * from 表1

select * from 表2
/*------------------------------*/
select t1.貨號,t1.批次,
case when ((select isnull(sum(數量),0) from 表1 t3 where t3.貨號=t1.貨號 and t3.批次<t1.批次)-isnull(t2.new_數量,0))<0
then case when ((select sum(數量) from 表1 t4 where t4.貨號=t1.貨號 and t4.批次<=t1.批次)-isnull(t2.new_數量,0))<0 then 0
else ((select sum(數量) from 表1 t4 where t4.貨號=t1.貨號 and t4.批次<=t1.批次)-isnull(t2.new_數量,0))
end
else t1.數量
end as 批次剩餘庫存數
from 表1 t1
left join (select 貨號,sum(數量) as new_數量 from 表2 group by 貨號) t2
on t1.貨號=t2.貨號
/*------------------------------*/

PS:上面將null轉換為0的函數為isnull,是SQL SERVER下的函數,你只要根據你的數據轉換為對應函數就可以了,如oracle是nvl,mysql是ifnull等等.

『叄』 sql,查詢語句怎麼寫,返回入庫時間,表(日期,數量)

首先,我覺得你問題中說的要選出「求數量和大於庫存的條件記錄日期」,那這個日期難道不應該是20140408, 因為只有在這一記錄進入是,當時的數量和才大於當前庫存。


如果我的理解是對的,你可以用下面的語句來實現:

SELECTtop1t1.in_date
FROMtest1t1
LEFTJOINtest1t2
ONt1.in_date>=t2.in_date
ANDt1.qty>0
GROUPBYt1.in_date
HAVINGSUM(t2.qty)>150
ORDERBYin_date
--output:
--20140408


如果你是在存儲過程或Job中寫這個邏輯,完全可以用游標去做,更加靈活。

『肆』 sql有入庫時間和出庫時間如何得到每日庫存

大概思路...每月期初數量+今日到當月1號的入庫加總-今日到當月1號的出庫加總=今日庫存
當然同樣思路可以推算出以前某個時間點的庫存...只要把握好時間某點就OK了...
SQL語句自己根據自己的Table寫...很簡單的

『伍』 SQL怎樣實現入庫

不太明白你的問題,能不能說清楚一點
入什麼庫?

『陸』 sql server 關於文件入庫的問題

我其實想問的是,如果產生沒有數據的時候,你們用什麼來代替,就像你說的,不能用空格,那麼這么說,只能用字元長度了,如果說第二個沒有也就是空的話,那麼只剩下第三個了,可是第三個和第二個是一樣的字元串長度,那麼怎麼判定缺的那個是第二個還是第三個,如果不用字元串長度的話,那麼你怎麼分割字元串。所以說,你還是給你的空值加個標示吧,不然的話,分不出來到底是第二個欄位是空還是第三個欄位是空。

『柒』 sql怎麼知道數據是否入庫

是不是就是說你的資料庫是vs自帶的那個?
如果是的話
其實也是一樣的
打開vs,在伺服器資源管理器里找到你要查詢的那個資料庫,找到那個表後右擊有個「顯示表數據」,就可以看到是否插入了數據。

『捌』 sql在入庫數量滿足訂單要求之前循環相加

這個沒可能用一句sql寫得出來吧,要麼寫存儲過程,要麼用後台腳本跑(比如PHP)
//先拿到整個數據
$result = mysql_query('select * from tb');
//邊累加邊跑循環
$sum = 0;
while($arr = mysql_fetch_assoc($result))
{
$sum += $arr[數量];

if($sum >= 10000){
die($arr[入庫時間]);
}

}

『玖』 sqL中查詢時間9月的入庫記錄的SQL語句怎麼寫

select * from rk where rkDate between '2009-9-1' and '2009-9-30'

『拾』 入庫出庫表,求庫存,這個sql如何寫

把問題簡化了說
--入庫數(一個sql從入庫表中按天分組匯總統計出來的)
日期 當天入庫
--出庫數據(一個sql從出庫表中按天分組統計出來的)
日期 當天出庫
--求下面的結果
日期 入庫/出庫類型 數量 庫存
------解決方案--------------------------------------------------------SQL code USE TEMPDB GO IF OBJECT_ID('TB_IN') IS NOT NULL DROP TABLE TB_IN IF OBJECT_ID('TB_OUT') IS NOT NULL DROP TABLE TB_OUT GO CREATE TABLE TB_IN( IN_DATE DATETIME ,TOTAL INT ) CREATE TABLE TB_OUT( OUT_DATE DATETIME ,TOTAL INT ) INSERT INTO TB_IN SELECT '2012-02-20', 1000 UNION ALL SELECT '2012-02-22', 1500 INSERT INTO TB_OUT SELECT '2012-02-20', 500 UNION ALL SELECT '2012-02-21', 300 UNION ALL SELECT '2012-02-22', 500 UNION ALL SELECT '2012-02-24', 400 GO ;WITH MU AS ( SELECT *,ROW_NUMBER() OVER(ORDER BY CHANGE_DATE,CASE WHEN TYPE='入庫' THEN 1 ELSE 2 END) AS ROW FROM ( SELECT IN_DATE AS CHANGE_DATE,TOTAL,'入庫' AS TYPE FROM TB_IN UNION ALL SELECT OUT_DATE,0-TOTAL,'出庫' AS TYPE FROM TB_OUT ) T ) ,MU2 AS ( SELECT *,TOTAL AS [庫存] FROM MU WHERE ROW=1 UNION ALL SELECT T1.*,T2.[庫存]+T1.TOTAL FROM MU T1 INNER JOIN MU2 T2 ON T1.ROW=T2.ROW+1 ) SELECT CHANGE_DATE AS [日期],TYPE AS [類型], ABS(TOTAL) AS [變更數量],[庫存] FROM MU2 /* 日期 類型 變更數量 庫存 2012-02-20 00:00:00.000 入庫 1000 1000 2012-02-20 00:00:00.000 出庫 500 500 2012-02-21 00:00:00.000 出庫 300 200 2012-02-22 00:00:00.000 入庫 1500 1700 2012-02-22 00:00:00.000 出庫 500 1200 2012-02-24 00:00:00.000 出庫 400 800 */
------解決方案-------------------------------------------------------- 最好有一個遞增ID,SQL2005以上版本可以用ROW_NUMBER()產生ID,下面是用臨時表,好理解點
SQL code declare @t1 table (D datetime,Qty float) declare @t2 table (D datetime,Qty float) insert into @t1 select '2012-02-20', 1000 union all select '2012-02-22', 1500 insert into @t2 select '2012-02-20', 500 union all select '2012-02-21', 300 union all select '2012-02-22', 500 union all select '2012-02-24', 400 select identity(int,1,1) as id,* into #t from (select D,Qty In_Qty,0 Out_Qty from @t1 union all select D,0,Qty from @t2) t order by D,In_Qty desc select D as '日期', case when In_Qty>0 then '入庫' else '出庫' end as '入庫/出庫類型', case when In_Qty>0 then In_qty else Out_Qty end as '數量', (select sum(In_Qty)-sum(Out_Qty) from #t where id0 then '入庫' else '出庫' end as '入庫/出庫類型', case when In_Qty>0 then In_qty else Out_Qty end as '數量', (select sum(In_Qty)-sum(Out_Qty) from #t where id

熱點內容
linux多行刪除 發布:2025-01-13 13:06:01 瀏覽:200
傳奇3離線腳本 發布:2025-01-13 13:05:08 瀏覽:751
java請求https 發布:2025-01-13 12:53:35 瀏覽:868
SQL限定符 發布:2025-01-13 12:46:19 瀏覽:145
掛號系統php源碼 發布:2025-01-13 12:39:04 瀏覽:581
存儲器通史是什麼 發布:2025-01-13 12:38:11 瀏覽:405
可以捏的解壓器怎麼做 發布:2025-01-13 12:32:16 瀏覽:524
ios的java編譯器 發布:2025-01-13 12:12:54 瀏覽:616
安卓手機如何看wifi使用人數 發布:2025-01-13 12:08:10 瀏覽:953
vb反編譯教程 發布:2025-01-13 12:08:00 瀏覽:538