2013-11-03 3 views
0

cfchart를 사용하여 영역 차트를 만들려고하지만 그 방법을 알지 못합니다. 나는 테이블의 모든 주석에 대한 질의를하고 있고, 생성 된 주석의 시간 수 (x 축상의 날짜 또는 월수)와 출력 수를 보여주고 싶습니다. 나는 값이 내가 원하는 방식으로 차트 출력에 인 cfchart의 영역을 넣어 잘 모르겠어요, 여기에서cfchart 영역 유형을 사용하여 시간 간격별 설명을 표시하는 방법

<cfquery name="qGetComments" datasource="#session.datasource#"> 
SELECT PersonFirstName 
     , PersonLastName 
     , PersonZip 
     , CommentCode 
     , refTopicID 
     , tbComment.CommentID 
     , tbComment.CreateDateTime 
FROM tbPerson 
JOIN tbComment ON tbPerson.PersonID = tbComment.PersonID 
</cfquery> 

: 여기에 코멘트 쿼리입니다. 이 같은?

<cfchart chartWidth="400" show3D="yes"> 
    <cfchartseries type="area" query="qGetComments" 
     valueColumn="CommentID" 
     itemColumn="CreateDateTime" /> 
</cfchart> 
+0

(편집) * 기간별 의견 표시 * 집계 쿼리가 필요합니다. 구체적으로'count (...) '와 당신이 선택하는 날짜 간격 (날, 달, ecetera에 의해)을 그룹화 한 것. 데이터베이스와 관련된 날짜 함수가 필요합니다. 그래서 1) 어떤 날짜 간격입니까? 2) 귀하의 DBMS 및 버전은 무엇입니까? – Leigh

+0

'cfchart' 대신 네이티브 ZingChart 라이브러리를 사용하고 싶을 수도 있습니다. ColdFusion 10에서 'cfchart'를 사용하는 것보다 기본 라이브러리를 사용하는 것이 더 쉽습니다. ZingChart 웹 사이트에는 특정 형식의 서식을 사용하여 특정 유형의 차트에 대한 JSON을 생성 할 수있는 '차트 작성기'가 있습니다. JSON을 가져 와서 필요한 작업의 기초로 사용할 수 있습니다. –

+0

안녕하세요 @leigh 저는 SQL Server를 사용하고 있습니다. 하루 단위로 그룹화하면 완벽 할 것입니다. 도와 줘서 고맙다! – user1431633

답변

2

서버에서 날짜별로 기록 그룹에 간단한 방법은 2008+ 위의 datedatetime 열을 캐스팅.

SELECT CONVERT(DATE, tbComment.CreateDateTime) AS CommentDate 
     , COUNT(*) NumOfComments 
FROM tbPerson INNER JOIN tbComment ON tbPerson.PersonID = tbComment.PersonID 
GROUP BY CONVERT(DATE, tbComment.CreateDateTime); 


당신은 차트가 SQL에서 날짜를 포맷하여 친절한 좀 더 사용자 레이블을 만들 수 있습니다 그리고 단순히 값에 대한 차트 항목으로 "CommentDate"열 및 "NumOfComments"을 사용하여 사용하십시오 (cast and convert 참조). 결과를 date 값으로 주문하고 문자열이 아닌 형식으로 주문해야합니다. 그렇지 않으면, 차트 레이블 (이것은 일반적인 실수이다) 적절한 시간 순서대로 표시되지 않을 수도 있습니다 : 여담으로

--- format as: Mon dd, yyyy 
SELECT CONVERT(VARCHAR, tbComment.CreateDateTime, 107) AS CommentDateString 
     , COUNT(*) NumOfComments 
FROM tbPerson INNER JOIN tbComment ON tbPerson.PersonID = tbComment.PersonID 
GROUP BY CONVERT(VARCHAR, tbComment.CreateDateTime, 107) 
ORDER BY CONVERT(DATE, CONVERT(VARCHAR, tbComment.CreateDateTime, 107), 107) 

SQLFiddle

을, HTML 차트 옵션이 있다면, 당신은 스콧의 제안으로 볼 수 있습니다. 일반적으로 CFChart의 경우 간단하지만 경우에 적합합니다.하지만 모양을 사용자 정의하기 시작하면 (일반적으로 발생하는) 대개 기본 도구를 직접 사용하는 것이 좋습니다.

+0

와우. 완벽하게 작동합니다! 고마워, @Leigh! – user1431633