Как загрузить данные только с самым высоким значением в один из столбцов плоского файла? - PullRequest
0 голосов
/ 25 февраля 2019

У меня есть следующий плоский файл:

ColumnA              Quantity              BatchID
1                          10                            100
1                              10                           200
2                              20                           100
2                              20                           200
3                              30                           100
3                              30                           200

Как я могу загрузить данные только из самого высокого BatchID, то есть BatchID 200, в мою базу данных SQL Server?

В приведенном выше примереЯ хочу загрузить эти данные в свою базу данных:

ColumnA              Quantity              BatchID
1                              10                           200
2                              20                           200
3                              30                           200

Спасибо.

1 Ответ

0 голосов
/ 25 февраля 2019

StackOverflow - это не решение проблем, а решение конкретных проблем, когда ОП уже что-то пробовал.Пожалуйста, имейте это в виду при публикации вопросов.

С учетом вышесказанного есть два возможных решения:

  1. Загрузите данные во временную таблицу, а затем ВСТАВЬТЕ, используя SELECT, который имеетвстроенное представление, которое ВЫБИРАЕТ на значение MAXНеобходимо использовать встроенное представление, потому что вы не можете использовать агрегат в предикате, поэтому вам нужно запустить отдельный SELECT, чтобы получить максимальное значение - в качестве альтернативы вы можете разбить его на выражение общей таблицы (CTE) и SELECT из этого.
  2. Выполнение в рамках SSIS.Во-первых, сортируйте столбец на основе BatchId и Количество (я полагаю, что это так, как вы сортировать).Затем используйте задачу скрипта, чтобы сохранить количество в переменной.Теперь запустите каждую строку и сравните входящее значение с сохраненным значением: если оно больше, чем, тогда вы можете установить новый столбец BIT с именем IsMaxValue.Затем выполните условное разбиение, чтобы отправить строку с IsMaxValue == 1 в базу данных.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...