【发布时间】:2015-12-28 21:24:23
【问题描述】:
我在 stackoverflow 上找到了这篇文章,Add a summary row with totals
我想要完成的只是这个,但是我在下面的 WITH 语句中列出了转换后的 DURATION 字段。我正在尝试将那一天(24 小时期间)的“持续时间”列加起来。我不知道这是否可能。让我知道。谢谢!
;WITH dupes AS
(
SELECT
CALLER_PHONE, DIALED_PHONE
FROM
dbo.PBXDATA
GROUP BY
CALLER_PHONE, DIALED_PHONE
)
SELECT
c.CALL_TIME, c.SALES_REP, c.CALL_TYPE, c.FLAG1,
COALESCE(NULLIF(c.FLAG3, 'NULL'),'') AS FLAG3,
ISNULL(dupes.CALLER_PHONE, '') + ISNULL(dupes.DIALED_PHONE,'') AS PHONE,
CONVERT(VARCHAR(8), c.DURATION, 108) AS DURATION
FROM
dupes
JOIN
dbo.PBXDATA c ON dupes.CALLER_PHONE = c.CALLER_PHONE
OR dupes.DIALED_PHONE = c.DIALED_PHONE
WHERE
(c.SALES_REP LIKE 'Doug%' OR
c.SALES_REP LIKE 'Nick%' OR
c.SALES_REP LIKE 'Bob%' OR
c.SALES_REP LIKE 'Joe%' OR
c.SALES_REP LIKE 'John%')
AND (c.CALL_TIME >= DATEADD(DAY, 0, DATEDIFF(DAY, 0, CURRENT_TIMESTAMP)))
AND (c.CALL_TIME < DATEADD(DAY, 1, DATEDIFF(DAY, 0, CURRENT_TIMESTAMP)))
AND DURATION = (SELECT CAST(DATEADD(S, SUM(DATEDIFF(S, '00:00:00', DURATION)), '00:00:00') AS TIME)
FROM dbo.PBXDATA)
ORDER BY
c.CALL_TIME;
【问题讨论】:
-
你能给我们表格结构、输入和期望的输出吗?很难理解你想要什么。
-
对此我深表歉意。谢谢你提醒我。下面是链接。 tvlift.com/beta-test/table.png
标签: sql-server tsql join where-clause with-statement