반응형
MySQL 데이터베이스에 연결하는 ASP.NET을 사용하여 GridView를 만들려고합니다. 데이터는 아래와 같이 나타납니다.
BusinessUnit OrderDate Canceled
UnitA 1/15/2013 N
UnitA 10/1/2013 N
UnitB 10/15/2013 N
UnitB 10/22/2013 N
UnitB 10/22/2013 N
위의 기록을 바탕으로 결과를 아래와 같이 표시하고 싶습니다.
BusinessUnit TodaysOrders ThisMonthsOrders ThisYearsOrders
UnitA 0 1 2
UnitB 2 3 3
내 현재 코드는 다음과 같습니다. 오류가 발생합니다 (DatabaseName.sum에 대한 내용이 존재하지 않습니다. Function Name Parsing and Resolution '섹션 ...)
Select
SUM (CASE WHEN (OrderDate)=DATE(NOW()) THEN 1 ELSE 0 END) AS TodaysOrders,
SUM (CASE WHEN YEAR(OrderDate) = YEAR(CURDATE()) AND MONTH(OrderDate) = MONTH(CURDATE()) THEN 1 ELSE 0 END) AS ThisMonthsOrders,
SUM (CASE WHEN YEAR(main_order_managers.creation_date) = YEAR(CURDATE()) THEN 1 ELSE 0 END) AS ThisYearsOrders
코드 계속
FROM OrderTable WHERE OrderTable.Canceled. <> 'Y';
Sum Case가 여기서 가장 잘 사용됩니까?
해결 방법
함수 이름과 괄호 사이의 공백으로 인해 오류가 발생했습니다.
SUM (CASE WHEN ...
^^
시험
SELECT BusinessUnit,
SUM(CASE WHEN OrderDate = CURDATE() THEN 1 ELSE 0 END) TodaysOrders,
SUM(CASE WHEN DATE_FORMAT(OrderDate, '%Y%m') = DATE_FORMAT(CURDATE(), '%Y%m') THEN 1 ELSE 0 END) ThisMonthsOrders,
SUM(CASE WHEN YEAR(OrderDate) = YEAR(CURDATE()) THEN 1 ELSE 0 END) ThisYearsOrders
FROM OrderTable
WHERE Canceled <> 'Y'
GROUP BY BusinessUnit
참조 페이지 https://stackoverflow.com/questions/19529864
반응형
'MySql' 카테고리의 다른 글
MySQL은 여러에서 마지막 날짜 레코드를 가져옵니다. (0) | 2020.12.19 |
---|---|
MySQL Calculate age based on date of birth (0) | 2020.12.19 |
MySQL LOAD DATA INFILE 오류 1064 (0) | 2020.12.19 |
MySQLi로 버퍼링되지 않은 쿼리? (0) | 2020.12.19 |
MySQL mysql 저장 프로 시저 오류 (1172, '결과가 둘 이상의 행으로 구성됨') (0) | 2020.12.19 |
댓글