2013-05-08 34 views
0

我有一個表DTTransaction和DTHotelTransaction與TransactionID是以後的主鍵和外鍵。SQL對錶中所有現有日期的列計數結果

Columns in DTTransaction :machinename(varchar),BookedOn(datetime),TransactionID(int) 
Columns in DTHotelTransaction :HCOMCID(int) ,TransactionID 

要求:

對於DTTransaction每BookedOn值,我想要的機器名和機器名,這些(415428,415429,415430,415431,415432)HCOMCID的計數。

我試圖做的事:

select DTTransaction.machinename,count(DTTransaction.machinename) from DTTransaction 
join DTHotelReservation on DTTransaction.TransactionID =  
DTHotelReservation.TransactionID 
and DTHotelReservation.HCOMCID in (
415428, 
415429, 
415430, 
415431, 
415432) 
where convert(varchar(10),BookedOn,101)='04/10/2013' 
group by DTTransaction.machinename 

但它會給只對特定date.I想要得到的計數對所有現有BookedOn值。

在此先感謝。

回答

1

如果你想要的所有日期的總和,只是刪除where條款:如果您想通過日期的結果

select DTTransaction.machinename, count(DTTransaction.machinename) 
from DTTransaction join 
    DTHotelReservation 
    on DTTransaction.TransactionID = DTHotelReservation.TransactionID and 
     DTHotelReservation.HCOMCID in (415428, 415429, 415430, 415431, 415432) 
group by DTTransaction.machinename 

,然後包括你的group by。例如,

select DTTransaction.machinename, convert(varchar(10),BookedOn,101), count(DTTransaction.machinename) 
from DTTransaction join 
    DTHotelReservation 
    on DTTransaction.TransactionID = DTHotelReservation.TransactionID and 
     DTHotelReservation.HCOMCID in (415428, 415429, 415430, 415431, 415432) 
group by DTTransaction.machinename, convert(varchar(10),BookedOn,101) 
order by 1, MAX(BookedOn) 

我包括一個order by條款,所以結果會爲了通過在每個機器名稱中的日期。

+0

謝謝,它的工作。 – 2013-05-08 14:06:16

相關問題