Как создать таблицу (или список) с кодами заказов для обоих продуктов - PullRequest
0 голосов
/ 05 июля 2018

У меня есть таблица Transactions со следующей структурой:

ID  | Product | OrderCode | Value
1   |   8     | ABC       | 100
2   |   5     | ABC       | 150
3   |   4     | ABC       |  80
4   |   5     | XPT       | 100
5   |   6     | XPT       | 100
6   |   8     | XPT       | 100
7   |   5     | XYZ       | 100
8   |   8     | UYI       |  90

Как создать таблицу (или список) с кодами заказов для обоих продуктов 5 и 8?

В приведенном выше примере это должны быть заказы ABC и XPT.

Ответы [ 2 ]

0 голосов
/ 05 июля 2018

Вероятно, есть много способов сделать это, но вот довольно общее решение, которое я придумал:

FilteredList =
    VAR ProductList = {5, 8}
    VAR SummaryTable = SUMMARIZE(Transactions,
                           Transactions[OrderCode],
                           "Test",
                           COUNTROWS(INTERSECT(ProductList, VALUES(Transactions[Product])))
                               = COUNTROWS(ProductList))
    RETURN SELECTCOLUMNS(FILTER(SummaryTable, [Test]), "OrderCode", Transactions[OrderCode])

Ключевым моментом здесь является то, что если набор продуктов для определенного кода заказа содержит как 5, так и 8, то пересечение VALUES(Transations[Product]) с набором {5,8} точно соответствует этому набору и имеет счетчик 2. Если он не имеет обоих, счет будет 1 или 0 и тест не пройден.

0 голосов
/ 05 июля 2018

Пожалуйста, уточните больше по вашему вопросу. Из вышеприведенного поста я понял, что вы хотите отфильтровать список. Для этого вы можете использовать следующий код

List<Transactions> listTransactions = listTransactions.FindAll(x=>x.Product == 5 || x.Product == 8)
...