예를 들어 데이터의 시작일과 종료일이 있습니다. 2016-07-10로 start_date, 2016-07-25로 end_date. 두 개의 필드를 ZERO 값과 함께 추가하여이 두 날짜 사이의 모든 레코드를 원하지만 테이블에없는 날짜 레코드를 가져 오지 못합니다.날짜 기록이 두 기간 사이에 일치하지 않으면 0을 인쇄합니다.
SQL 바이올린 : http://sqlfiddle.com/#!9/c8dab/9
DDLs :
CREATE TABLE `bugs` (`bug_id` int(11) NOT NULL, `bug_date` date NOT NULL, `cf1` int(11) NOT NULL, `cf2` int(11) NOT NULL, `bug_status` varchar(200) NOT NULL) ENGINE=InnoDB DEFAULT CHARSET=latin1;
INSERT INTO `bugs` (`bug_id`, `bug_date`, `cf1`, `cf2`, `bug_status`) VALUES (101, '2016-07-19', 3, 2, 'RESOLVED'), (102, '2016-07-19', 2, 1, 'VERIFIED'), (103, '2016-07-19', 2, 1, 'VERIFIED'), (103, '2016-07-19', 2, 1, 'VERIFIED'), (1363, '2016-07-19', 2, 1, 'VERIFIED'), (1352, '2016-07-19', 2, 1, 'VERIFIED'), (102, '2016-07-19', 2, 1, 'VERIFIED'), (102, '2016-07-22', 2, 2, 'CLOSED'), (103, '2016-07-22', 2, 2, 'CLOSED'), (103, '2016-07-22', 2, 2, 'CLOSED'), (102, '2016-07-19', 3, 2, 'NEW'), (102, '2016-07-19', 2, 1, 'REOPENED'), (102, '2016-07-19', 2, 1, 'CLOSED'), (102, '2016-07-19', 2, 1, 'VERIFIED'), (1363, '2016-07-19', 2, 1, 'VERIFIED'), (1352, '2016-07-19', 2, 1, 'VERIFIED'), (565, '2016-07-19', 2, 1, 'VERIFIED'), (398, '2016-07-22', 2, 2, 'CLOSED'), (565, '2016-07-22', 2, 2, 'CLOSED'), (9872, '2016-07-22', 2, 2, 'CLOSED');
검색어 :
SELECT DATE_FORMAT(convert_tz(bugs.bug_date,@@session.time_zone,'+05:30'), '%Y-%m-%d') as date, SUM(bugs.cf1 + bugs.cf2) as count FROM bugs
('2016년 7월 10일'BETWEEN bugs.bug_date AND '2016년 7월 25일 ') GROUP BY bugs.bug_date;
실제 출력 :
date | count
2016-07-19 | 46
2016-07-22 | 24
예상 출력 :
date | count
2016-07-10 | 0
2016-07-11 | 0
2016-07-12 | 0
2016-07-13 | 0
2016-07-14 | 0
2016-07-15 | 0
2016-07-16 | 0
2016-07-17 | 0
2016-07-18 | 0
2016-07-19 | 46
2016-07-20 | 0
2016-07-21 | 0
2016-07-22 | 24
2016-07-23 | 0
2016-07-24 | 0
2016-07-25 | 0
내가 관련 게시물의 몇 겪었하지만 난 매우 구체적인 위해를 올리기 때문에 유사한 솔루션을 시도하여 진짜 대답을받지 못했습니다 누군가가 나를 제안 할 수 있다면 문제.
FYI .. 일부 게시물에 제안 된 것처럼 새 테이블을 만들 수 없으며 DB 액세스는 나를 위해 읽기 전용입니다.
제발 도와주세요. 감사합니다.
편집 버튼이 있습니다. 일반적으로 데이터 표시 문제는 프레젠테이션 계층/응용 프로그램 수준 코드에서 가장 잘 처리됩니다. – Strawberry
날짜에 대한 도우미 테이블을 만들 것입니다. 그러나 당신이 말하는 것처럼 당신은 할 수 없습니다. – Drew