> 데이터 베이스 > MySQL 튜토리얼 > MySQL에서 거래가 없는 날을 포함하여 지난 7일 동안의 거래 데이터를 검색하는 방법은 무엇입니까?

MySQL에서 거래가 없는 날을 포함하여 지난 7일 동안의 거래 데이터를 검색하는 방법은 무엇입니까?

Susan Sarandon
풀어 주다: 2024-12-31 14:38:10
원래의
879명이 탐색했습니다.

How to Retrieve Transaction Data for the Last 7 Days, Including Days with No Transactions in MySQL?

단일 테이블의 빈 행을 포함하여 지난 7일의 행 선택

MySQL 데이터베이스에서 다음 위치에서 트랜잭션을 검색하려고 합니다. 지난 7일 동안의 일일 총 판매량을 계산합니다. 그러나 특정 날짜에 대해 사용 가능한 데이터가 없더라도 결과 집합에 빈 행이 포함되도록 하려고 합니다.

이 문제를 해결하려고 시도했지만 쿼리에서는 다음이 포함된 날짜만 검색합니다. 업무. 원하는 결과를 얻으려면 접근 방식을 수정해야 합니다.

해결책:

해결책에는 하위 쿼리를 활용하여 지난 7일 내의 날짜 목록을 생성하는 것이 포함됩니다. . 그런 다음 이 목록을 거래 테이블과 결합하여 포괄적인 결과 집합을 만듭니다.

  1. 날짜 목록 생성:
SELECT DATE_FORMAT(a.Date,'%Y-%m-%d') as purchase_date,
'0' as  amount
FROM (
    SELECT curdate() - INTERVAL (a.a + (10 * b.a) + (100 * c.a)) DAY as Date
    FROM (SELECT 0 as a UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6 UNION ALL SELECT 7 UNION ALL SELECT 8 UNION ALL SELECT 9) as a
    CROSS JOIN (SELECT 0 as a UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6 UNION ALL SELECT 7 UNION ALL SELECT 8 UNION ALL SELECT 9) as b
    CROSS JOIN (SELECT 0 as a UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6 UNION ALL SELECT 7 UNION ALL SELECT 8 UNION ALL SELECT 9) as c
) a
WHERE a.Date BETWEEN NOW() - INTERVAL 7 DAY AND NOW()
로그인 후 복사
  1. 거래에 참여 테이블:
LEFT JOIN
(
  SELECT DATE_FORMAT(purchase_date, '%Y-%m-%d') as purchase_date,
  coalesce(SUM(amount), 0) AS amount
  FROM transactions
  WHERE purchase_date BETWEEN NOW() - INTERVAL 7 DAY AND NOW()
  AND vendor_id = 0
  GROUP BY purchase_date
)t2
ON t2.purchase_date = t1.purchase_date
로그인 후 복사
  1. 그룹 및 주문 결과:
GROUP BY t1.purchase_date
ORDER BY t1.purchase_date DESC
로그인 후 복사

이 쿼리는 생성된 날짜를 다음과 결합합니다. 트랜잭션 테이블을 사용하면 트랜잭션이 없는 날에도 빈 행이 포함됩니다. 최종 결과 세트에는 지난 7일 동안의 구매 날짜와 총 판매 금액이 표시되며, 빈 행은 해당 날짜에 거래가 없음을 나타냅니다.

위 내용은 MySQL에서 거래가 없는 날을 포함하여 지난 7일 동안의 거래 데이터를 검색하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿