Как сравнить дату с диапазоном дат - PullRequest
0 голосов
/ 30 июля 2011

Я хочу рассчитать общее количество и 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): отпустить
если мы изменим условие ГДЕ stmt:

select * from TBL_CAR_TX where TranDate >= '2011-06-10' and Trandate <= '2011-06-19'  

(эти даты я получаю снаружи) ==> Все записи исчезают ==> Я не могу рассчитать, потому что данные не отображаются.

Посмотрите на таблицу TBL_CAR_TX, мы видим, что человек одолжил автомобиль «BMW» с «2011-06-09», и до «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

Большое спасибо за вашу помощь

1 Ответ

1 голос
/ 30 июля 2011

Я хочу рассчитать общее количество и 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

или используйте МЕЖДУ 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.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...