Как создать данные диаграммы с помощью SQL-запроса - PullRequest
5 голосов
/ 08 мая 2011

Я пытаюсь создать визуализированный график, используя плагин Jquery Highcharts .

Но я не могу написать запрос для создания данных, необходимых для вставки JS.

Что мне нужно сделать, это показать клиенту, сколько уникальных посетителей нажали на его работуОбъявление.Вы можете увидеть окончательный вывод, что я пытаюсь сделать;

enter image description here

И это часть необходимого JS;

xAxis: {
   categories: ['01.05', '02.05', '03.05', '04.05', '05.05',
                '06.05', '07.05','08.05']
   },
series: [{
            name: 'Unique',
            data: [12,8,9,10,5,4,11,30]
        }]

Таблица сстатистика;

Job_Ad_Statistics
-----------------
jobID,  jobstat_Date,     job_statUnique
1       07.05.2011        0
1       07.05.2011        1
1       07.05.2011        1
2       06.05.2011        1
3       06.05.2011        1
1       05.05.2011        1
1       04.05.2011        1
*Currently, table has 20k rows.

Мне нужно получить несколько Count, где job_statUnique = 1 AND jobstat_Date находится между сейчас И 7 днями ранее, чтобы вставить данные в поле Series.* Спасибо за помощь.

Ответы [ 2 ]

4 голосов
/ 09 мая 2011

Если кому-то нужен ответ, вот как я его решил;

  ;WITH Date_Range_T(d_range) AS 
     (
       SELECT DATEADD(DAY, DATEDIFF(DAY, 0, GETDATE()) - 6, 0) 
       UNION ALL SELECT DATEADD(DAY, 1, d_range) 
       FROM Date_Range_T 
       WHERE DATEADD(DAY, 1, d_range) < GETDATE()
     )

  SELECT d_range, COUNT(job_statID) as total 
  FROM Date_Range_T 
       LEFT JOIN Jobs_Stats on (job_stat_Date=d_range) 
  GROUP BY d_range ORDER BY d_range ASC

Примечание: job_stat_Date должно быть Date, а не DateTime

0 голосов
/ 08 мая 2011

Мне немного неясно, как вы хотите, чтобы данные выглядели, но попробуйте что-то вроде этого:

SELECT jobID, COUNT(jobID) 
FROM Job_Ad_Statistics
WHERE jobstat_Date BETWEEN GETDATE() AND DATEADD(day, -7, GETDATE())
GROUP BY JobID

Если вы просто хотите, чтобы вы подсчитали, вы можете удалить JobID из списка:

SELECT COUNT(jobID) 
FROM Job_Ad_Statistics
WHERE jobstat_Date BETWEEN GETDATE() AND DATEADD(day, -7, GETDATE())
GROUP BY JobID
...