我們有這張表,球員的行動正在記錄。我想找出人們在哪裏購買他們的裝備(Item
弓或劍)。該設備可以在商店或拍賣中購買(該地點可在Action
欄找到)。所以,當玩家購買的項目,我們需要找到Action
店或拍賣(取決於它們中的哪一個發生最後一個項目是買之前)找到之前的記錄後,指定一個並加入他們
**User Time Action Item**
1 12:00 Auction
2 12:01 Shop
3 12:04 Shop
4 12:09 Shop
4 12:15 Buy Bow
2 12:15 Auction
2 12:19 Auction
1 12:25 Chat
4 12:33 Auction
3 12:47 Chat
1 12:47 Buy Sword
2 12:47 Buy Bow
3 12:50 Buy Sword
4 12:52 Buy Bow
3 12:56 Buy Bow
的resulut應
**Time Item Place**
12:15 Bow Shop
12:47 Sword Auction
12:47 Bow Auction
12:50 Sword Shop
12:52 Bow Auction
12:56 Bow Shop
我我想我有一個線索如何解決與交叉申請在mssql中,但它可以解決它沒有它?我可能不得不在蜂巢中使用查詢。我會很感激任何答案。謝謝!
您使用了什麼風格的SQL Server?如果你使用的是2008,你可以使用'Common Table Expression',如果你在其中包含'ROW_NUMBER()',你可以在'b.row_num_alias = a.row_num_alias-1'上加入CTE到自己。 – 2013-03-26 22:49:23
@ DuncanHowe將會一直回到2005年。 – 2013-03-26 22:58:33
@Aaron - 事實上 - 但我在2005年看到了使用CTE的性能問題,這在2008年沒有出現。對於2005年,我更喜歡使用臨時表。 – 2013-03-26 23:31:40