我想计算总数和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):Hold,(R):释放
如果我们改变WHERE stmt的条件:
select * from TBL_CAR_TX where TranDate >= '2011-06-10' and Trandate <= '2011-06-19'
(这些日期,我从外面得到它们) ==&GT;所有记录都消失==&gt;我无法计算,因为数据不显示。
看看表TBL_CAR_TX,我们可以看到一个人从'2011-06-09'借用汽车'宝马'直到'2011-06-20'他退回了它。那么,如果我在SQL Server 2008中,我如何保留记录(1)&amp; (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
非常感谢你的帮助
答案 0 :(得分:1)
我想计算总数和GROUP BY CarID,但目前无法执行此操作。 那么,如果我在SQL Server 2008中,我如何保留记录(1)&amp; (2)in 范围从“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 CLAUSE。
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中进行这样的处理。