2011-04-15 62 views
0

我有一些我需要加入的表。表x,b,c正常加入,我將稱之爲J1。 表x,d是我稱爲J2的另一個正常連接。複雜的LINQ SelectMany

現在我需要將J1和J2連接在一起。對於J1中的每一行,J2中可能有多個相關的行。表x有一個日期字段和其他條件(它們很容易設置並且在組連接中),但是我需要獲得最新的/最高的J2行。表x有一個日期字段,基本上對於J1中的每一行,我可以在J2中有多行,並且我需要獲取最近的一行。

我有適合J1的連接。 J2的連接也已到位,作爲J1上GroupJoin的第一個元素。

在哪裏,我完全失去了兩個問題:

  • 在一個點上,我需要按日期過濾掉。 J1 * x x條目必須晚於J1的 (可能會有更舊的條目)。

  • 選擇許多需要採取最新的,這將牽連一些排序,但我沒有成功添加排序。我在哪裏放?我有GroupJoin,隨後是SelectMany。我在哪裏放入OrderBy?

注意我需要lambda語法;我不能將它改寫成另一種形式。

幫助理解

+1

請修復您的問題中的拼寫錯誤。 – 2011-04-15 07:23:42

+0

你的問題目前還不清楚,主要是因爲它相當抽象。如果你能給出一個你想要做的具體例子,那真的會有所幫助。另外,如果第一次連接是無關緊要的,那麼從等式中刪除它是值得的。 – 2011-04-15 07:29:57

+0

我知道。這是相當突出的。可悲的是,查詢本身現在跨越了兩頁。內赫和外連接之間的特赫有大約十幾個固定條件。這不是無關緊要的,btw ...基本上,J1有數據,J2有一些額外的數據可以在J1中的每個項目中使用,如果有的話,我們需要最新的最新版本。 – TomTom 2011-04-15 08:00:45

回答

0

條件:

1)J1(單線)(X,B,C)= J2(多線)(X,d)

2) J2.x已的DateField超過J1.x訂購

3)J2.x條目必須是後來

4)J2.x濾除按日期

如果其正確

+0

你如何加入j1和j2? – 2011-04-15 07:42:42

+0

非常。 J1有數據,J2可能有額外的數據,並且可能有多個項目,這是我需要的時候* J2中的數據更多,最多的則是多個。 – TomTom 2011-04-15 08:01:53