[英]How to compare date with a date range
我想計算“數量總計”和“ GROUP BY CarID”,但目前無法執行此操作。
在我的數據庫中有一些表:TBL_CAR_TX,TBL_CAR,TBL_PERSON
table: TBL_CAR_TX
------------------
select * from TBL_CAR_TX
where TranDate >= '2011-06-09' and Trandate <= '2011-06-20'
TranID, AccID, CarID, TranDate, Type, Quantity, .....
--------------------------------------------------------
0 2563 BMW 2011-06-09 H -15 (1)
1 2563 BMW 2011-06-20 R 15
2 2563 BMW 2011-06-20 H 20
3 0055 TOY 2011-06-12 H -10 (2)
4 0055 TOY 2011-06-20 R 10
...
(H):保持,(R):釋放
如果我們更改WHERE stmt的條件:
select * from TBL_CAR_TX where TranDate >= '2011-06-10' and Trandate <= '2011-06-19'
(這些日期,我從外面得到)==>所有記錄都消失了==>由於數據不顯示,我無法計算。
看一下表TBL_CAR_TX,我們可以看到一個人從“ 2011-06-09”借車“ BMW”,直到“ 2011-06-20”他都歸還了它。 因此,如果我在SQL Server 2008中這樣做,如何將記錄(1)和(2)保留在從'2011-06-10'到'2011-06-19'的日期范圍內以進行計算。 如果不能,如何在Java編程中做到這一點? 任何建議。
table TBL_CAR:
MarketID, CarID, Name, Size, ...
---------------------------
GER BMW ....
JPA TOY ....
Table TBL_PERSON:
AccID, Name, Age, DOB, ...
-------------------------
2563 Robert
0055 Mike
非常感謝您的幫助
我想計算“數量總計”和“ GROUP BY CarID”,但目前無法執行此操作。 因此,如果我在SQL Server 2008中這樣做,如何將記錄(1)和(2)保留在從'2011-06-10'到'2011-06-19'的日期范圍內以進行計算。
只需從您的SQL中刪除=
。
select CarID, SUM(QUANTITY) from TBL_CAR_TX where TranDate > '2011-06-09' and Trandate < '2011-06-20' GROUP BY CarID
或使用BETWEEN SQL子句。
select CarID, SUM(QUANTITY) from TBL_CAR_TX where TranDate BETWEEN '2011-06-10' AND '2011-06-19' GROUP BY CarID
如果不能,如何在Java編程中做到這一點?
您絕對可以在Java中過濾掉數據,但是當SQL可以為您完成工作時,這樣做是沒有意義的。 除非這會造成很大的性能損失,否則在SQL中幾乎總是值得進行這樣的處理。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.