【发布时间】:2018-11-04 05:13:53
【问题描述】:
我有一张包含这些信息的表格
ACCTCCODE | ACCTDESCRIPTION | ISSUEDATE
----------+-----------------+----------------
1031 | Blahdescription | 2018-03-11
1032 | Blahdescription | 2017-04-18
1033 | Blahdescription | 2018-04-15
1034 | Blahdescription | 2018-011-04
我想尝试获取两次之间的日期?对于两个单独的列。例如
ACCTCCODE | ACCTDESCRIPTION | FIRSTCOUNT | SECOUNDCOUNT
----------+-----------------+-------------+--------------
1031 | Blahdescription | 150 23
1032 | Blahdescription | 75 101
1033 | Blahdescription | 3 78
1034 | Blahdescription | 11 23
我尝试在 SELECT 中使用 SELECT 创建查询,但对 sql 很陌生,因此在使其工作时遇到了一些麻烦。
这是我想出的方法,它适用于第一次计数,但不适用于第二次计数。
SELECT DISTINCT
account AS ACCTCODE, Description AS ACCTDESCRIPTION,
COUNT(issueDate) AS FIRSTCOUNT,
(SELECT COUNT(issueDate)
FROM Table1
WHERE issueDate BETWEEN CONVERT(DATETIME, '2018-2-31')
AND CONVERT(DATETIME, '2018-04-03')
AND account <> '') AS SECONDCOUNT
FROM
Table1
WHERE
issueDate BETWEEN CONVERT(DATETIME, '2017-11-31')
AND CONVERT(DATETIME, '2018-02-01')
AND account <> ''
GROUP BY
account, Description
ORDER BY
account, Description ASC
【问题讨论】:
-
你能描述一下第一次和第二次计数的逻辑吗
-
所以我只想为 FirstCount 计算日期在 2017-11-31 和 2018-02-01 之间的行数。然后对 secondCount 进行同样的操作,只计算其 2 个日期之间的行数。两个日期都来自 issueDate 列。
标签: sql sql-server tsql