Я продолжаю разработку проекта, который доставляет мне много хлопот. Прежде всего, я не знаю, как использовать Entity Framework, но я знаю дизайн базы данных, и просмотр этой базы данных доставляет мне головную боль, потому что она не нормализована. Я не уверен, что это вина Entity Framework или предыдущего разработчика.
Допустим, у меня есть эта таблица:
ForeignKey Product Manufacturing Completed
-- ------- ------------- ---------
01 Shoes Step A 2020-02-24 00:00:00.0000000
02 Shirt Step A 2020-02-25 00:00:00.0000000
03 Pants Step A 2020-02-25 00:00:00.0000000
01 Shoes Step B 2020-02-24 13:56:00.0000000
02 Shirt Step B NULL
03 Pants Step B 2020-02-25 13:11:00.0000000
04 Hat Step B NULL
04 Hat Step A NULL
Мне нужно получить следующий набор результатов:
ForeignKey Product Manufacturing Completed
-- ------- ------------- ---------
01 Shoes Step B 2020-02-24 13:56:00.0000000
02 Shirt Step B NULL
03 Pants Step B 2020-02-25 13:11:00.0000000
04 Hat Step A NULL
Я не эксперт по SQL, так что это доставляет мне много хлопот. Мне нужно соответствовать следующим критериям:
1. Вернуть строку, которая находится дальше всего в процессе производства. Это означает, что иногда завершенные даты обеих строк будут нулевыми (мне нужно будет вернуть строку шага A), иногда первая завершенная дата будет завершена, но вторая будет нулевой (в этом случае мне понадобится вернуть шаг B, потому что это сделано с первого шага), и иногда они оба будут иметь завершенные даты, и в этом случае мне нужно будет вернуть шаг B.
2. Шаг A и шаг B были выбраны для ясности этот вопрос, на самом деле имя шага A идет в алфавитном порядке после шага B, поэтому сортировка по алфавиту не будет работать.
Это заставило меня выдернуть волосы. Помощь!