0

テーブル DTTransaction と DTHotelTransaction を持つ TransactionID が前者の主キーであり、後で外部キーです。

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

しかし、それは特定の日付に対してのみ提供されます。既存のすべての BookedOn 値のカウントを取得したいと考えています。

前もって感謝します。

4

1 に答える 1

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ので、結果は各マシン名内の日付順に表示されます。

于 2013-05-08T14:03:53.863 に答える