Problem z złączeniem tabel, wybraniem max wartości z kolumny i grupowaniem

0

Mam trzy tabele z danymi.
W tabeli A wartości z kolumny AA są takie same jak w tabeli B kolumnie BA.
W tabeli C wartości z kolumny CA są takie same jak w tabeli B kolumnie BC.
Tabela B łączy do siebie tabele A i C przez kolumny BA = AA i BC = CA.
W tabeli B są następujące kolumny (BA,BB,BC,BD,BE).
Wartości w kolumnach BA i BC powtarzają się.
Wartości w kolumnie BB rosną z każdym wierszem tabeli ale jak w danym wierszu zmieni się wartość w kolumnie BC lub w komunie BA w kolumnie BB wartość rośnie od nowa.

W jaki sposób pobrać dane z tabel A, B, C ale tak aby wiersz nowej tabeli zawierał max wystąpienie wartości z kolumny BB
Czyli wiersze nowej tabeli wyglądałyby mniej więcej tak.

Nowa Tabela
x f
x g
z h
z e

Niżej układ tabel A, B, C

Tabela B ||||| Tabela A ||| Tabela C
---------------- | ------------------- || ---------------- | ------------------- || ----------------
BA | BC | BB | BD | BE || AA | AC | AB || CA | CC
x | f | 1 | y | y || x | ss | xx || f | zz
x | f | 2 | y | y || z | yy | xx || g | bb
x | f | 3 | y | y || | | || e | nn
x | g | 1 | y | y|| | | || h | pp
x | g | 2 | y | y
x | g | 3 | y | y
z | h | 1 | y | y
z | h | 2 | y | y
z | h | 3 | y | y
z | e | 1 | y | y
z | e | 2 | y | y
z | e | 3 | y | y

Pozdrawiam i dziękuję za pomoc.
Fajnie by było gdyby ktoś dodatkowo przeniósł zaproponowanego SQL jako rozwiązanie do LINQ

0

Jeżeli dobrze zrozumiałem to tak:

select
  BA
  ,BC
  ,MAX(BB) BB
  ,BD
  ,BE
  ,cc
  ,AC
from
  B
  inner join A on A.AA=B.BA
  inner join C on B.BC = C.CA
 group by
  BA
  ,BC
  ,BD
  ,BE
  ,cc
  ,AC

http://sqlfiddle.com/#!18/853fd/3

1 użytkowników online, w tym zalogowanych: 0, gości: 1