Sql server 如何在sql server 2008中重写此查询
重写这一点的一种方法是Sql server 如何在sql server 2008中重写此查询,sql-server,Sql Server,重写这一点的一种方法是 WITH a AS (SELECT accen, accno, tranamt, COUNT(*) AS [b] FROM dbo.tbl1 WHERE DATEt > 2 / 10 / 2013 GROUP BY accen, accno,
WITH a
AS (SELECT accen,
accno,
tranamt,
COUNT(*) AS [b]
FROM dbo.tbl1
WHERE DATEt > 2 / 10 / 2013
GROUP BY accen,
accno,
tranamt
HAVING COUNT(*) > 1)
SELECT code,
COUNT(*)
FROM a A
INNER JOIN dbo.tbl1 t
ON a.accen = q.accen
AND a.accno = t.accno
AND a.tranamt = t.tranamt
AND t.datet > 2 / 10 / 2013
GROUP BY code
这不是写日期文字的方式<代码>2/10/2013=0。应该是
'20131002'
。除此之外,重写的目的是什么?我同意日期。上面/下面的部分都来自同一个表格,所以我在想是否有更好的方法来写。。。
WITH a
AS (SELECT *,
COUNT(*) OVER (PARTITION BY accen, accno, tranamt ) AS [b]
FROM dbo.tbl1
WHERE DATEt > '20131002')
SELECT code,
COUNT(*)
FROM a
WHERE b > 1
GROUP BY code