Запрос командного текста в 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 ценности).

Другие вопросы по тегам