0

我对MS-SQL知之甚少,但我需要做一个报告。

我有这个查询:

Select
 a.HPD_CI as HPD_CI_Grouped,
count(a.HPD_CI) as HPDCant, b.submit_date
  From
  HPD_Help_Desk a, Tiempos_Grupos b--, Tiempos_grupos b
  GROUP BY a.HPD_CI, b.submit_date

结果是:

HPD_CI_GROUPED  HPDCant SUBMIT_DATE  
ADSL1          1    2013-04-10 19:22:59.0
ENL001         4    2013-04-10 19:22:59.0
OSE001        18    2013-04-10 19:22:59.0
OSE002         9    2013-04-10 19:22:59.0
OSE003         1    2013-04-10 19:22:59.0
REF0001       44    2013-04-10 19:22:59.0
REF0002       11    2013-04-10 19:22:59.0
REF0003        8    2013-04-10 19:22:59.0

实际上我正在做的是计数,但我需要将 SUBMIT_DATE 与下一个进行比较,并且仅当下一个 submit_date 存在于定义的范围(天)之间时才计数。

假设我定义“6 天”... 我发现 OSE001 有 2013-04-10 19:22:59.0 作为 submit_date,如果在 2013-04-10 19:22:59.0 和 2013-04- 之间还有另一个 OSE001 16 19:22:59.0,那么它必须计数,否则不要。

它可能类似于:

COUNT(CASE Submit_Date - **NEXT**submit_date < 6 days then 1 else 0 end)

(当然那个例子不起作用,因为我不知道如何调用 * NEXT *date)

4

1 回答 1

0

我无法从您的问题中判断您是否已经有两张桌子,但这个想法是这样的:

SELECT a.HPD_CI as HPD_CI_Grouped
      ,a.submit_date
      ,COUNT(*) 
FROM HPD_Help_Desk a
JOIN Tiempos_Grupos b
  ON a.HPD_CI = b.HPD_CI
    AND b.submit_date BETWEEN a.submit_date AND DATEADD(DAY,6,a.submit_date)
GROUP BY a.HPD_CI, a.submit_date

在连接条件中使用 BETWEEN 允许您在 6 天内为相同的 HPD_CI 值拉回每一行。

于 2013-05-28T21:35:09.980 回答