как посчитать количество идентификаторов, используя несколько фильтров - PullRequest
0 голосов
/ 18 марта 2020

Таблица A

TableAId profile  prof_type  groupId   division     Department     unitBranch
 1        prof1     1           1          1            1              1
 2        prof2     2           1          1            1              1
 3        prof3     1           2          1            3              1
 4        prof4     1           1          1            3              1

Таблица B

TableBId   staff          groupId   division     Department     unitBranch
  1         ali            1          1            1              1
  2         Mohammad       2          1            1              1              
  3         ahmad          1          1            3              1
  4         omar           1          1            3              1
  5         othman         1          1            1              1
  6         basam          1          1            3              1
  7         saaed          3          1            3              1

Я пытаюсь создать список типа

groupId   division     Department     unitBranch     COUNT
     1          1            1              1          2
     2          1            3              1          1
     1          1            3              1          3

Это запрос, который я пытаюсь создать, но я получаю неправильные результаты.

var tes = (from a in db.TableA
                       join b in db.TableB on a.GroupID equals b.GroupID //here need to filter multiple value (group,department,divsion ,unit)
                       group b by a into g
                       select new
                       {

                       });

Помогите, пожалуйста, записать количество возвращаемых запросов сотрудников, где (groupID, Division, Department, Unitbranch) в tableA = Таблица B.

1 Ответ

0 голосов
/ 18 марта 2020

Ознакомьтесь с этой статьей об использовании составных ключей:
https://docs.microsoft.com/en-us/dotnet/csharp/linq/join-by-using-composite-keys
Вы можете использовать оператор new.
Может потребоваться приведенный ниже оператор group настроены, как только вы пропустите реальные данные через него.

    var tes = (from a in db.TableA
               join b in db.TableB
               on new { a.GroupID, a.division, a.Department, a.unitbranch } equals new { b.GroupID, b.division, b.Department, b.unitbranch } into joinedValues
               group joinedValues by a into g
               select g);
...