我需要一些關於PIVOT表的幫助或者以我需要的方式獲得結果。將日期轉換爲列的行 - SQL Server 2008
我有一張這樣的桌子。
+---------------+--------------+----------+-----------+---------------+-----------------------------------------+-----------------+---------------+------------------+----------+-------+------------+--------------+------------+-------------------+----------------+----------+-------------------+
| Client_Id | Project_Id | Hotel_Id | Room_Type | Room_Category | Allotment_Date | Number_Of_Rooms | Number_Booked | Number_Available | Overbook | Price | Dep_Amount | Full_Payment | Admin_Only | HotelAllotment_Id | Price_Excl_VAT | VAT_Code | Charge_Dep_Amount |
+---------------+--------------+----------+-----------+---------------+-----------------------------------------+-----------------+---------------+------------------+----------+-------+------------+--------------+------------+-------------------+----------------+----------+-------------------+
| DEFAULT | TEMPLATE | 2423 | 276 | | 2010-12-05 00:00:00 | 99999 | 1 | 99998 | 0 | 33000 | 0 | 1 | 0 | 279611 | 0 | | 0 |
| DEFAULT | TEMPLATE | 2423 | 276 | | 2010-12-06 00:00:00 | 99999 | 1 | 99998 | 0 | 33000 | 0 | 1 | 0 | 279612 | 0 | | 0 |
| DEFAULT | TEMPLATE | 2423 | 276 | | 2010-12-07 00:00:00 | 99999 | 1 | 99998 | 0 | 33000 | 0 | 1 | 0 | 279613 | 0 | | 0 |
| DEFAULT | TEMPLATE | 2424 | 276 | | 2010-12-05 00:00:00 | 99999 | 1 | 99998 | 0 | 22000 | 22000 | 0 | 0 | 279590 | 0 | | 0 |
| DEFAULT | TEMPLATE | 2424 | 276 | | 2010-12-06 00:00:00 | 99999 | 1 | 99998 | 0 | 22000 | 22000 | 0 | 0 | 279591 | 0 | | 0 |
| DEFAULT | TEMPLATE | 2424 | 276 | | 2010-12-07 00:00:00 | 99999 | 1 | 99998 | 0 | 22000 | 22000 | 0 | 0 | 279592 | 0 | | 0 |
+---------------+--------------+----------+-----------+---------------+-----------------------------------------+-----------------+---------------+------------------+----------+-------+------------+--------------+------------+-------------------+----------------+----------+-------------------+
我需要這樣顯示數據,以獲得列中的日期和每天預訂的數量。
+---------------+--------------+----------+-----------+---------------+------------+------------+--------------+
| Client_Id | Project_Id | Hotel_Id | Room_Type | Room_Category | 2010-12-05 | 2010-12-06 | 2010-12-07 |
+---------------+--------------+----------+-----------+---------------+------------+------------+--------------+
| DEFAULT | TEMPLATE | 2423 | 276 | | 1 | 1 | 1 |
| DEFAULT | TEMPLATE | 2424 | 276 | | 1 | 1 | 1 |
+---------------+--------------+----------+-----------+---------------+------------+------------+--------------+
我需要這個由HOTEL_ID,Room_Type和Room_Category(如果有的話)
我需要這是動態的,因爲日期,可以更改進行分組。
我嘗試使用簡單的透視表,沒有運氣。
任何幫助將是偉大的。
這是好的,但與大項目有很多酒店和日期範圍是不一樣的每個酒店它給一個錯誤。 「Msg 1056,Level 15,State 1,Line 1 選擇列表中元素的數量超過了允許的最大數量4096個元素。」 我正在測試的項目有4641條記錄 –
@FedericoGiust有限制至於什麼可以返回,如果你真的需要調整4641個不同的數據值,那麼你應該考慮把它分解成更小的部分,或者在應用層中進行這種類型的轉換而不是SQL。 – Taryn
@FedericoGiust然後,這是一個跡象表明你正在做的不是應該在數據庫層中完成的事情 – Lamak