#sql #asp.net
#sql #asp.net
Вопрос:
мне нужно подсчитать, сколько заказов было обработано в течение года, однако у меня есть поле с именем datePrepped, в котором у меня есть дата, поэтому я использую функцию Month(), чтобы получить месяц, который мне нужен для всех месяцев года
я не хочу группировать, мне нужно, чтобы выходные данные сохранялись в переменных, поэтому я использую КАК январь, так и февраль и т.д. однако я получаю эту ошибку [Microsoft] [ODBC Microsoft Access Driver] Слишком мало параметров. Ожидаемый 1.
sqlString = "SELECT " amp; _
"SUM(IIf(Month(r.datePrpped)='1', 1, 0)) AS Jan," amp; _
"SUM(IIf(Month(r.datePrpped)='2', 0)) AS Feb," amp; _
"SUM(IIf(Month(r.datePrpped)='3', 0)) AS Mar," amp; _
"SUM(IIf(Month(r.datePrpped)='4', 0)) AS Apr," amp; _
"SUM(IIf(Month(r.datePrpped)='5', 0)) AS May " amp; _
"FROM OrderControl AS r;"
Необходим пример вывода
<%=MyRecordset("Jan")%> HTML output 500
<%=MyRecordset("Feb")%> HTML output 800
Ответ №1:
В большинстве '1'
выражений отсутствуют iif()
s:
SELECT SUM(IIf(Month(r.datePrpped) = 1, 1, 0)) AS Jan,
SUM(IIf(Month(r.datePrpped) = 2, 1, 0)) AS Feb,
SUM(IIf(Month(r.datePrpped) = 3, 1, 0)) AS Mar,
SUM(IIf(Month(r.datePrpped) = 4, 1, 0)) AS Apr,
SUM(IIf(Month(r.datePrpped) = 5, 1, 0)) AS May
FROM OrderControl AS r;
MONTH()
Функция возвращает число, поэтому уместно, чтобы значение сравнения было числом, а не строкой.