안녕하세요 테이블에서 레코드를 실행하는 견해를 만들기 위해 노력하고 있습니다 및 견인 년 사이에 잘 작동하지만 모든 값을 나열해야합니다. 검색 사이에mysql 쿼리 검색 레코드를 BETWEEN 및 종료 여부를 입력하십시오.
쿼리
select SUM(price) FROM orders where year BETWEEN 2004 and 2009 GROUP BY year
2005 | 200
2006 | 100
2008 | 400
i am trying to show like this
2005 | 200
2006 | 100
2007 | 0
2008 | 400
2009 | 0
-- ----------------------------
-- Table structure for `orders`
-- ----------------------------
DROP TABLE IF EXISTS `orders`;
CREATE TABLE `orders` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`price` decimal(10,0) DEFAULT NULL,
`year` int(11) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=4 DEFAULT CHARSET=latin1;
-- ----------------------------
-- Records of orders
-- ----------------------------
INSERT INTO orders VALUES ('1', '200', '2005');
INSERT INTO orders VALUES ('2', '100', '2006');
INSERT INTO orders VALUES ('3', '400', '2008');
또는 내가 모든 년의 목록이 필요합니다, 일부 루프 또는 뭔가를해야만 제안에게 도움
'AS yr'은 첫 번째'SELECT 2004 AS yr'에 있어야합니까? 나는 항상 거기에 넣었다. – Danosaure
@Danosaure - 예. 잘 잡으세요! –
그리고 저는 join에서'USING (year)'을 사용하기 위해'year'라고 이름을 짓기로합니다. 나는 그것이 더 효율적인지 아닌지 잘 모르겠지만, 나는 게으르다. – Danosaure