Я просмотрел множество примеров выбора множества столбцов, но только группировка по 1 столбцу, и мой, похоже, дает мне повторяющиеся результаты.См. Ниже, я хотел бы выбрать все столбцы в моей таблице, но хотел бы только GROUP BY
VehicleId
.На скриншоте вы увидите, что результаты на самом деле не сгруппированы по VehicleId
.
Есть идеи, что я делаю не так?
Попробуйте 1:
SELECT
h.*,
TotalFines = 1,
TotalIncidents = 1,
TotalVehicleAllocations = 1,
TotalVehicleConditions = 1,
TotalMileageApplications = 1
FROM
(
SELECT h1.VehicleId FROM [dbo].[VehicleHistory] h1 GROUP BY h1.VehicleId
) GroupedList
INNER JOIN [dbo].[VehicleHistory] h ON GroupedList.VehicleId=h.VehicleId
ORDER BY
h.VehicleId;
Попробуйте 2:
SELECT t1.* FROM VehicleHistory t1
INNER JOIN
(
SELECT VehicleId FROM VehicleHistory GROUP BY VehicleId
) t2
ON t1.VehicleId=t2.VehicleId
Оба запроса дают одинаковые результаты с дублирующимися строками для каждого идентификатора транспортного средства, как показано ниже:
Вот мои ожидаемые результаты ниже.Результатом является запрос, произведенный Entity Framework.Но я бы хотел переписать запрос linq в T-SQL: