我有一個具有挑戰性的問題。我想從1個表中選擇一些記錄,並從另外兩個表中查找所有相關記錄。匹配時,我想將這些記錄插入到一個新的表ORDER BY ID和Time中。插入時,我想爲所有具有相同ID的記錄分配唯一ID以表示組ID。如何分配唯一的組ID?
這個我可以用CTE做。這是抓住。
每個表格都是特定的記錄類型。例如,第一個表是Entries,第二個表是視圖等等。
這些是日誌表到我無法控制的應用程序,我想通過相同的ID查看條目的電子路徑。但是,如果同一個ID有多個條目,我想分割組ID。
如何在SQL Server 2008 R2中執行此操作?
檢查出SQL Fiddle我做了一個ID給你一個特定的電子路徑的一個很好的例子。在這個例子中,我將要被分配一個唯一的組ID和第一項記錄後,分區像這樣:
GroupID ID TIME TYPE
1001 3445 January, 01 2014 03:00:00+0000 View
1001 3445 January, 01 2014 04:00:00+0000 View
1001 3445 January, 01 2014 05:00:00+0000 View
1001 3445 January, 01 2014 06:00:00+0000 Click
1001 3445 January, 01 2014 07:00:00+0000 Entry
1002 3445 January, 01 2014 08:00:00+0000 View
1002 3445 January, 01 2014 09:00:00+0000 View
1002 3445 January, 01 2014 10:00:00+0000 View
1002 3445 January, 01 2014 11:00:00+0000 Click
1002 3445 January, 01 2014 12:00:00+0000 Entry
感謝所有幫助您可以提供。我仍然在學習,這對我來說真的很棘手,但也許我只是忽略了那些正在盯着我的東西!
注意
我認爲,爲了使這項工作。我將不得不找到具有相同ID的每個條目記錄。然後對於每條記錄,在Datetime之前查找第一個Entry記錄。找到時,用該日期時間更新該記錄,以便每條記錄都知道它是日期時間和最後一個條目日期時間。這應該可以更輕鬆地選擇兩個日期之間的點擊和視圖,並相應地更新每個細分。
更好的是,我可以通過每次點擊和查看並找到大於當前日期時間的條目。然後從該列表中選擇MIN(時間),並將該日期時間添加到每個單擊和查看記錄。這樣,每次點擊和查看都具有相同的日期時間,包括條目,我可以有相似性來分配組ID!
'GroupID' 1001和1002之間有什麼區別?所有行似乎具有相同的ID和相同的日期... – Fabio
Fabio:不同之處在於,1001是導致第一個條目記錄的所有記錄,然後1002是第一個條目記錄之後的所有其他記錄,並且導致第二個條目記錄。如果有5個其他條目記錄與點擊和視圖之間的每一個,那麼該ID將上升到1003,1004等。 – Fastidious