나는 쿼리 번호가 이고 현재 (52 주)이되도록 쿼리를 변경하려고합니다. 이 쿼리는 일정 범위의 날짜 목록이 포함 된 캘린더 테이블을 사용합니다. 쿼리는 최대 및 최소 날짜를 선택하는 것이지 마지막 52 주일 필요는 없습니다.현재 52 주 동안 주별 항목 수를 계산하는 MySQL 쿼리?
지난 52 주 (즉, 1 년 전부터 지금까지)를 얻을 수 있도록 현재 캘린더 테이블을 최신 상태로 유지하는 방법을 알고 싶습니다. 아니면 달력 테이블을 사용하지 않고 쿼리를 독립적으로 만들 수있는 또 다른 방법이 있습니까?
SELECT calendar.datefield AS date, IFNULL(SUM(purchaseyesno),0) AS item_sales
FROM items_purchased join items on items_purchased.item_id=items.item_id
RIGHT JOIN calendar ON (DATE(items_purchased.purchase_date) = calendar.datefield)
WHERE (calendar.datefield BETWEEN (SELECT MIN(DATE(purchase_date))
FROM items_purchased) AND (SELECT MAX(DATE(purchase_date)) FROM items_purchased))
GROUP BY week(date)
생각 : 여기
쿼리입니까?
왜 캘린더 테이블이 있고 그 테이블에 DATE 또는 DATETIME 열을 사용하지 않는 이유가 무엇입니까? –
일정표는 각 기간마다 보관함이 있어야하고 특정 보관함에 대한 데이터가 없을 때 사용됩니다. –
@ Ryan Kempt, 그것이 실제로 OP가 요구하는 것일 수 있습니다. 또한 일련의 날짜가 필요할 때 날짜 기능이 도움이되지 않습니다. –