S
sydan
Unregistered / Unconfirmed
GUEST, unregistred user!
這樣的,我有一個SQL語句想把一些數據加總一起!需要加總的數據表又有好幾個,所以.....
我用的是PARADOX數據表的DB文件!
幣种數據表(itvadata)
itvata itshow
-------------------------
RMB 人民幣
HKD 港幣
USD 美元
YEB 越幣
資金 iotrsu
itseql ituser itvata ittype itquer itarrive itinout
-------------------------------------------------------------
00000001 YSL RMB 入帳 100.00 2002/01/01 2002/04/03
00000002 SYDAN HKD 入帳 300.00 2002/04/01
00000003 SYDAN HKD 轉帳 -50.00 2002/04/01
00000004 SYDAN RMB 入帳 500.00 2002/04/01
00000005 SYDAN USD 入帳 100.00 2002/04/05
購物主表iooutid
itseql ituser itdate
-------------------------------------------
00000001 YSL 2002/01/02
00000001 SYDAN 2002/04/01
購物明細表 iosout
isseql isuser istydata isname isoutp isnuit isvata ispric isquer
--------------------------------------------------------------------------------------------
00000001 YSL 日常用品 衣服 1 件 RMB 100.00 100.00
00000001 SYDAN 日常用品 牙刷 5 個 HKD 1.00 5.00
00000001 SYDAN 日常用品 牙膏 1 支 RMB 23.00 23.00
**************************************************************************************
* 執行我的程式后我就得到如下數據當用戶為:SYDAN 時間為今天時) *
* 幣种 總入帳金額 總消費金額 剩餘金額 *
* ------------------------------------------------------------------------ *
* RMB 500.00 23.00 467.00 *
* HKD 250.00 5.00 245.00 *
* USD 100.00 0.00 100.00 *
**************************************************************************************
我現在是這樣寫的,但運行后沒有數据:
SELECT Itvadata.Itvata,
SUM( Iotrsu.Itquer ) Itquer,
SUM( Iosout.Isquer ) Isquer
FROM Itvadata,Iotrsu,Iosout
Where(( Iotrsu.ituser =:itseid ) and
( Iotrsu.itarrive >= :indate ) and
( Iotrsu.itarrive <= udate ) and
( Iotrsu.Itvata = Itvadata.Itvata ) and
( Iosout.isvata = Itvadata.Itvata) and
( Iosout.Isseql in
( select Iooutid.itseql from Iooutid where ((ituser=:itseid)and( itdate>= :indate )and( itdate>= udate )))))
GROUP BY Itvadata.Itvata
BrowiotrsuQuery.ParamByName('itseid').AsString:=mainform.UserId; 用戶編號的值
mydata.BrowiotrsuQuery.ParamByName('indate').AsDateTime:=strtodate(edit1.Text); 時間從的值
mydata.BrowiotrsuQuery.ParamByName('oudate').AsDateTime:=strtodate(edit2.Text); 時間至的值
[red]<即便我把所有的日期限制取消,數據也不能正確!>[/red]
麻煩各位大哥了!小弟現在正等著呢???
謝謝
這以是第三天了,大俠們,救救小弟吧!!!
[blue](只要能解決我說的那個問題,至於用什麼方法都可以!同時也可以分幾條SQL語句來
完成,比如先將要求時間的進帳統計起來並保存成臨時數據表[但我不會做],再通過這個臨時表來統計
消費主明細表!!)[/blue]
我用的是PARADOX數據表的DB文件!
幣种數據表(itvadata)
itvata itshow
-------------------------
RMB 人民幣
HKD 港幣
USD 美元
YEB 越幣
資金 iotrsu
itseql ituser itvata ittype itquer itarrive itinout
-------------------------------------------------------------
00000001 YSL RMB 入帳 100.00 2002/01/01 2002/04/03
00000002 SYDAN HKD 入帳 300.00 2002/04/01
00000003 SYDAN HKD 轉帳 -50.00 2002/04/01
00000004 SYDAN RMB 入帳 500.00 2002/04/01
00000005 SYDAN USD 入帳 100.00 2002/04/05
購物主表iooutid
itseql ituser itdate
-------------------------------------------
00000001 YSL 2002/01/02
00000001 SYDAN 2002/04/01
購物明細表 iosout
isseql isuser istydata isname isoutp isnuit isvata ispric isquer
--------------------------------------------------------------------------------------------
00000001 YSL 日常用品 衣服 1 件 RMB 100.00 100.00
00000001 SYDAN 日常用品 牙刷 5 個 HKD 1.00 5.00
00000001 SYDAN 日常用品 牙膏 1 支 RMB 23.00 23.00
**************************************************************************************
* 執行我的程式后我就得到如下數據當用戶為:SYDAN 時間為今天時) *
* 幣种 總入帳金額 總消費金額 剩餘金額 *
* ------------------------------------------------------------------------ *
* RMB 500.00 23.00 467.00 *
* HKD 250.00 5.00 245.00 *
* USD 100.00 0.00 100.00 *
**************************************************************************************
我現在是這樣寫的,但運行后沒有數据:
SELECT Itvadata.Itvata,
SUM( Iotrsu.Itquer ) Itquer,
SUM( Iosout.Isquer ) Isquer
FROM Itvadata,Iotrsu,Iosout
Where(( Iotrsu.ituser =:itseid ) and
( Iotrsu.itarrive >= :indate ) and
( Iotrsu.itarrive <= udate ) and
( Iotrsu.Itvata = Itvadata.Itvata ) and
( Iosout.isvata = Itvadata.Itvata) and
( Iosout.Isseql in
( select Iooutid.itseql from Iooutid where ((ituser=:itseid)and( itdate>= :indate )and( itdate>= udate )))))
GROUP BY Itvadata.Itvata
BrowiotrsuQuery.ParamByName('itseid').AsString:=mainform.UserId; 用戶編號的值
mydata.BrowiotrsuQuery.ParamByName('indate').AsDateTime:=strtodate(edit1.Text); 時間從的值
mydata.BrowiotrsuQuery.ParamByName('oudate').AsDateTime:=strtodate(edit2.Text); 時間至的值
[red]<即便我把所有的日期限制取消,數據也不能正確!>[/red]
麻煩各位大哥了!小弟現在正等著呢???
謝謝
這以是第三天了,大俠們,救救小弟吧!!!
[blue](只要能解決我說的那個問題,至於用什麼方法都可以!同時也可以分幾條SQL語句來
完成,比如先將要求時間的進帳統計起來並保存成臨時數據表[但我不會做],再通過這個臨時表來統計
消費主明細表!!)[/blue]