В запросе используется UNION ALL, а строки существуют только во втором операторе SELECT:
Код: Выделить всё
SELECT
A.Appointment_Id,
A.Appointment_Date,
C.Client_Id,
C.Name AS Client_Name,
S.Service_Id,
S.Description AS Service_Name,
CO.Name AS Company_Name,
CO.Address AS Company_Address,
'' AS Deleted_By
FROM Appointments A (NOLOCK)
LEFT JOIN Appointment_Services ApS (NOLOCK) ON ApS.Appointment_Id = A.Appointment_Id
LEFT JOIN Services S (NOLOCK) ON S.Service_Id = ApS.Service_Id
LEFT JOIN Clients C (NOLOCK) ON C.Client_Id = A.Client_Id
LEFT JOIN Companies CO (NOLOCK) ON CO.Company_Id = A.Company_Id
LEFT JOIN Users U (NOLOCK) ON U.Id = A.User_Id
WHERE A.Appointment_Date BETWEEN '07/01/2024 00:00:00' AND '07/31/2024 23:59:59'
UNION ALL
SELECT
DA.Appointment_Id,
DA.Appointment_Date,
C.Client_Id,
C.Name AS Client_Name,
S.Service_Id,
S.Description AS Service_Name,
CO.Name AS Company_Name,
CO.Address AS Company_Address,
U.Name AS Deleted_By
FROM Deleted_Appointments DA (NOLOCK)
LEFT JOIN Deleted_Appointment_Services DAS (NOLOCK) ON DAS.Appointment_Id = DA.Appointment_Id
LEFT JOIN Services S (NOLOCK) ON S.Service_Id = DAS.Service_Id
LEFT JOIN Clients C (NOLOCK) ON C.Client_Id = DA.Client_Id
LEFT JOIN Companies CO (NOLOCK) ON CO.Company_Id = DA.Company_Id
LEFT JOIN Users U (NOLOCK) ON U.Id = DA.User_Id
WHERE DA.Appointment_Date BETWEEN '07/01/2024 00:00:00' AND '07/31/2024 23:59:59'
Код: Выделить всё
public async Task GetAppointments(DateTime startDate, DateTime endDate)
{
var sql = new StringBuilder();
sql.AppendLine(/* the above query */);
using var con = connectionFactory.CreateConnection();
var result = await con.QueryAsync(sql.ToString(), new { startDate, endDate });
return result.ToList();
}
Я сравнил тот же запрос с запросом из Visual Basic API, и они оба отображают его так, как должно при выполнении. в SSMS Microsoft.
Реализация VB также возвращает его правильно.
РЕДАКТИРОВАТЬ: Добавлен полный запрос и параметры C#. для лучшего контекста.
Подробнее здесь: https://stackoverflow.com/questions/788 ... -union-all
Мобильная версия