  | 
				VFP 愛用者社區 本討論區為 Visual Foxpro 愛用者經驗交流的地方, 請多多利用"搜尋"的功能, 先查看看有無前例可循, 如果還有不懂的再發問. 部份主題有附加檔案, 須先註冊成為社區居民才可以下載.   
				 | 
			 
		 
		 
	
		| 上一篇主題 :: 下一篇主題   | 
	 
	
	
		| 發表人 | 
		內容 | 
	 
	
		wangydm
 
 
  註冊時間: 2005-11-03 文章: 8
 
  第 1 樓
  | 
		
			
				 發表於: 星期六 十月 30, 2010 8:56 am    文章主題: sql 能一下计算出每日存库数吗? | 
				     | 
			 
			
				
  | 
			 
			
				日期	货名	进	出	存
 
2010/9/1	A	100	10	90
 
2010/9/2	A	50	30	110
 
2010/9/3	A	60	30	140
 
2010/9/4	A	50	20	170
 
2010/9/5	A	10	10	170
 
 
 
上面是我的數據庫結構, 因記錄條數多, 如果用掃描的方式, 會需要很長時間?
 
計問用select語言能做得到嗎? | 
			 
		  | 
	 
	
		| 回頂端 | 
		 | 
	 
	
		  | 
	 
	
		syntech
 
 
  註冊時間: 2003-05-16 文章: 4252 來自: Taipei,Taiwan
  第 2 樓
  | 
		
			
				 發表於: 星期六 十月 30, 2010 10:24 am    文章主題:  | 
				     | 
			 
			
				
  | 
			 
			
				select 日期,貨品,SUM(存) from table group by 日期,貨品 order by 日期 desc,貨品 _________________ 如果公司有下列困擾:
 
1. 找不到便宜,快速,簡易的 生產排程軟體
 
2. 不知道如何快速排定 採購計劃
 
3. 成本抓不準,自己算比軟體算有用
 
4. 想學習系統規劃,想找系統架構的顧問
 
 
請聯絡我們,也許我們幫得上忙 | 
			 
		  | 
	 
	
		| 回頂端 | 
		 | 
	 
	
		  | 
	 
	
		wangydm
 
 
  註冊時間: 2005-11-03 文章: 8
 
  第 3 樓
  | 
		
			
				 發表於: 星期六 十月 30, 2010 1:42 pm    文章主題:  | 
				     | 
			 
			
				
  | 
			 
			
				谢谢楼上的回复,我没有表达清楚我的问题
 
我有一表结构如下
 
 
日期       货名 进   出 
 
2010/9/1 A 100 10 
 
2010/9/2 A 50 30 
 
2010/9/3 A 60 30 
 
2010/9/4 A 50 20 
 
2010/9/5 A 10 10
 
 
 
2010/9/3 B 60 30 
 
2010/9/4 B 50 20 
 
2010/9/5 B 10 10 
 
 
 
 
 
现在需要计算出每天的库存, 需要得到如下的结果
 
 
日期 货名 进 出 存 
 
2010/9/1 A 100 10 90 
 
2010/9/2 A 50 30 110 
 
2010/9/3 A 60 30 140 
 
2010/9/4 A 50 20 170 
 
2010/9/5 A 10 10 170
 
 
2010/9/3 B 60 30 30
 
2010/9/4 B 50 20 60
 
2010/9/5 B 10 10 60 | 
			 
		  | 
	 
	
		| 回頂端 | 
		 | 
	 
	
		  | 
	 
	
		syntech
 
 
  註冊時間: 2003-05-16 文章: 4252 來自: Taipei,Taiwan
  第 4 樓
  | 
		
			
				 發表於: 星期六 十月 30, 2010 3:22 pm    文章主題:  | 
				     | 
			 
			
				
  | 
			 
			
				不是你的結果設計的有問題,
 
那就是我看不懂你的題目.
 
 
 
要獲得準確的結果,
 
一般會直接用銷貨單及進料單,利用 末存 = 前存+sum(進)-sum(銷),
 
而不會用帳冊結果找出每筆材料的最末筆更新記錄.
 
 
這是帳冊嗎? _________________ 如果公司有下列困擾:
 
1. 找不到便宜,快速,簡易的 生產排程軟體
 
2. 不知道如何快速排定 採購計劃
 
3. 成本抓不準,自己算比軟體算有用
 
4. 想學習系統規劃,想找系統架構的顧問
 
 
請聯絡我們,也許我們幫得上忙 | 
			 
		  | 
	 
	
		| 回頂端 | 
		 | 
	 
	
		  | 
	 
	
		ckp6250
 
 
  註冊時間: 2004-07-30 文章: 1645
 
  第 5 樓
  | 
		
			
				 發表於: 星期六 十月 30, 2010 7:25 pm    文章主題:  | 
				     | 
			 
			
				
  | 
			 
			
				單純select語言做不到
 
要 Select + 自訂計算庫存函數,才可以 | 
			 
		  | 
	 
	
		| 回頂端 | 
		 | 
	 
	
		  | 
	 
	
		wangydm
 
 
  註冊時間: 2005-11-03 文章: 8
 
  第 6 樓
  | 
		
			
				 發表於: 星期一 十一月 01, 2010 2:15 pm    文章主題:  | 
				     | 
			 
			
				
  | 
			 
			
				嗯, 我現在就是要用數據庫資料做一份帳冊,用來和手工帳對比.
 
 
因為數據庫中只有 進 ,出兩個字段, 我想要計算出每天的庫存出來
 
 
 
 
 	  | syntech 寫到: | 	 		  不是你的結果設計的有問題,
 
那就是我看不懂你的題目.
 
 
 
要獲得準確的結果,
 
一般會直接用銷貨單及進料單,利用 末存 = 前存+sum(進)-sum(銷),
 
而不會用帳冊結果找出每筆材料的最末筆更新記錄.
 
 
這是帳冊嗎? | 	 
  | 
			 
		  | 
	 
	
		| 回頂端 | 
		 | 
	 
	
		  | 
	 
	
		ckp6250
 
 
  註冊時間: 2004-07-30 文章: 1645
 
  第 7 樓
  | 
		
			
				 發表於: 星期一 十一月 01, 2010 2:31 pm    文章主題:  | 
				     | 
			 
			
				
  | 
			 
			
				大約會是這樣子
 
select 日期,货名,進,出,計算庫存() As 存 from xxx | 
			 
		  | 
	 
	
		| 回頂端 | 
		 | 
	 
	
		  | 
	 
	
		syntech
 
 
  註冊時間: 2003-05-16 文章: 4252 來自: Taipei,Taiwan
  第 8 樓
  | 
		
			
				 發表於: 星期一 十一月 01, 2010 3:05 pm    文章主題:  | 
				     | 
			 
			
				
  | 
			 
			
				所以我才問你這是不是帳冊.
 
一般而言,出貨單或進料單數量只有一個,
 
不會有進出放在一起.
 
(不會有某一張單據又同時對A客戶出貨500個又同時表示由B廠商進貨600個)
 
 
會這樣做的只有會計傳票,會同時設計借方金額及貸方金額.
 
借: 500
 
    貸:500
 
而且也非同一筆紀錄同時有借貸兩種金額,
 
這一定會造成統計出問題.
 
 
如果拿借貸這種模式做出貨單或進料單,
 
真是頭殼壞掉.
 
 
 
但是帳冊就可以,因為要一眼就看出總進總出.
 
 
 
而且你的結果,台灣會稱為明細帳(流水帳),
 
2010/11/01 A 進:100 出:10  合計(前存+進-出): 120 (註:上月前存30+100-10)
 
2010/11/02 A 進:10  出:5  合計(前存+進-出): 125 (註:120+10-5)
 
2010/11/03 A 進:50  出:150 合計(前存+進-出): 25 (註:125+50-150)
 
 
收支總帳會像這樣:
 
A  前存:30  進:160 出:165  現存:25
 
 
 
如果你的結果是流水帳,
 
想要用單純的SQL命令是辦不到的,
 
因為今天的前存數量為前一天的末存數量,
 
有資料相依性
 
 
我必須承認我的T-SQL 或是其他DB SQL 語言學的不深.    XD
 
無法用簡單的SQL 命令兜出結果.   Orz _________________ 如果公司有下列困擾:
 
1. 找不到便宜,快速,簡易的 生產排程軟體
 
2. 不知道如何快速排定 採購計劃
 
3. 成本抓不準,自己算比軟體算有用
 
4. 想學習系統規劃,想找系統架構的顧問
 
 
請聯絡我們,也許我們幫得上忙 | 
			 
		  | 
	 
	
		| 回頂端 | 
		 | 
	 
	
		  | 
	 
	
		ckp6250
 
 
  註冊時間: 2004-07-30 文章: 1645
 
  第 9 樓
  | 
		
			
				 發表於: 星期一 十一月 01, 2010 8:49 pm    文章主題:  | 
				     | 
			 
			
				
  | 
			 
			
				比較簡潔的做法
 
是利用內儲程式和自訂函數
 
不過,數十至上百行程式碼是跑不掉的啦 | 
			 
		  | 
	 
	
		| 回頂端 | 
		 | 
	 
	
		  | 
	 
	
		區榮熾
 
 
  註冊時間: 2005-11-14 文章: 191
 
  第 10 樓
  | 
		
			
				 發表於: 星期二 十一月 09, 2010 2:56 pm    文章主題: Re: sql 能一下计算出每日存库数吗? | 
				     | 
			 
			
				
  | 
			 
			
				 	  | wangydm 寫到: | 	 		  日期	货名	进	出	存
 
2010/9/1	A	100	10	90
 
2010/9/2	A	50	30	110
 
2010/9/3	A	60	30	140
 
2010/9/4	A	50	20	170
 
2010/9/5	A	10	10	170
 
 
 
上面是我的數據庫結構, 因記錄條數多, 如果用掃描的方式, 會需要很長時間?
 
計問用select語言能做得到嗎? | 	  
 
試試看下面的例子,這能合你的意嗎?
 
 
Select  貨名, Sum(進) Total_in, Sum(出) Total_out, Sum(Sum(進)-Sum(出)) 存  From  xxxx.dbf  Where  Between( date, date(始), Date(止)) Group By 貨名 Order By 貨名 Into  Cursor zzzz
 
Brows   
 
&&看後如果合意,就可以設計報表印出,計算期由日期始止作控制(如日,月,季,年等) | 
			 
		  | 
	 
	
		| 回頂端 | 
		 | 
	 
	
		  | 
	 
	
		foxy
 
  
  註冊時間: 2007-08-16 文章: 265 來自: 泰國
  第 11 樓
  | 
		
			
				 發表於: 星期日 十一月 21, 2010 4:23 pm    文章主題:  | 
				     | 
			 
			
				
  | 
			 
			
				CREATE CURSOR mytbl( Code c(10), date d(8), qtyin n(10,0),qtyout n(10,0))
 
INDEX ON code TAG t1
 
INDEX ON date TAG t2
 
 
INSERT INTO mytbl values('001', DATE(2001,1,1),10,0)
 
INSERT INTO mytbl values('001', DATE(2001,1,2),10,0)
 
INSERT INTO mytbl values('002', DATE(2001,1,1),8,0)
 
INSERT INTO mytbl values('002', DATE(2001,1,2),0,1)
 
INSERT INTO mytbl values('001', DATE(2001,1,3),0,1)
 
INSERT INTO mytbl values('001', DATE(2001,1,4),0,2)
 
INSERT INTO mytbl values('002', DATE(2001,1,3),8,0)
 
INSERT INTO mytbl values('002', DATE(2001,1,4),0,2)
 
 
SELECT code,date,SUM(qtyin) as qtyin,SUM(qtyout) as qtyout;
 
FROM mytbl GROUP BY code,date;
 
into CURSOR a1 READWRITE
 
 
INDEX ON code TAG t1
 
INDEX ON date TAG t2
 
 
SELECT a.code,MAX(a.date) as date,b.qtyin as dayin,b.qtyout as dayout,SUM(a.qtyin) as runin,;
 
SUM(a.qtyout) as runout,SUM(a.qtyin-a.qtyout) as runbal;
 
from a1 as a;
 
inner join a1 as b;
 
on a.code=b.code and a.date<=b.date;
 
group BY a.code,b.date,b.qtyin,b.qtyout;
 
into CURSOR b1
 
 
BROWSE
 
 
&& runbal 就是每天下班時的庫存餘額 _________________ 進銷存+生產製造+會計+員工薪資+CRM+POS零售+餐廳手機app+電商手機app+電商網站,物流系統. 正/簡體中文,英,日,泰,緬甸文. MS SQL Server + 前台 VFP + PHP 網站 + Flutter 手機 App, 都共享 MS SQL Server的資料.  www.foxacc.com  LINE: mike-lm | 
			 
		  | 
	 
	
		| 回頂端 | 
		 | 
	 
	
		  | 
	 
	
		 | 
	 
 
  
  	 
	    
  	   | 
 	
您 無法 在這個版面發表文章 您 無法 在這個版面回覆文章 您 無法 在這個版面編輯文章 您 無法 在這個版面刪除文章 您 無法 在這個版面進行投票 您 無法 在這個版面附加檔案 您 無法 在這個版面下載檔案
  | 
   
  
		 |