Запрос командного текста в asp.net
У меня есть переменные месяца и года, и я получаю данные с этим запросом.
EntityDataSourcePersonel.CommandText =
"SELECT COUNT(TeklifTable.TeklifHazirlayan) AS Basari, EmployeeTable.Name, EmployeeTable.Surname, SUM(TeklifTable.TeklifTutar) AS ToplamSatis FROM EmployeeTable JOIN TeklifTable ON TeklifTable.TeklifHazirlayan = EmployeeTable.EmployeeId WHERE MONTH(TeklifTable.TeklifTarih) = "+dtM+" AND YEAR(TeklifTable.TeklifTarih) = " + dtY + " AND TeklifTable.Approved = true GROUP BY EmployeeTable.Name,EmployeeTable.Surname";
Этот запрос работает нормально, но мне нужно что-то еще. Как вы видите, у меня есть состояние "где", и я беру данные, которые были подтверждены как истинные. Мне интересно, есть ли способ получить все данные, не проверяя, одобрено это или нет. Я имею в виду, что мне нужны все данные и данные, которые были подтверждены как истинные.
1 ответ
Если вы имеете в виду, что хотите получить список утвержденных и не утвержденных, то вы можете добавить столбцы к своему предложению SELECT, как показано ниже;
EntityDataSourcePersonel.CommandText =
"SELECT COUNT(TeklifTable.TeklifHazirlayan) AS Basari,
EmployeeTable.Name,
EmployeeTable.Surname,
SUM(TeklifTable.TeklifTutar) AS ToplamSatis,
SUM(CASE WHEN TeklifTable.Approved = true THEN 1 ELSE 0 END) as [TotalApproved],
SUM(CASE WHEN TeklifTable.Approved = false THEN 1 ELSE 0 END) AS [TotalUnapproved]
FROM EmployeeTable
JOIN TeklifTable ON TeklifTable.TeklifHazirlayan = EmployeeTable.EmployeeId
WHERE MONTH(TeklifTable.TeklifTarih) = "+dtM+"
AND YEAR(TeklifTable.TeklifTarih) = " + dtY + "
GROUP BY EmployeeTable.Name,EmployeeTable.Surname";
Пожалуйста, посмотрите на использование SqlParameter
Тем не менее, поскольку ваша текущая команда уязвима для SQL-инъекций (путем создания вашего оператора путем добавления dtM
а также dtY
ценности).