2016-03-08 141 views
1

我正在尝试编写一个查询以返回多个匹配结果,我想查看表中有多少条记录与列匹配。从SQL中选择多个表

select [pomDocumentId], 
     [svPartNo], 
     count(svPartNo) as dup 
from [tbl_ODW_PomItem] 
group by [svPartNo],[pomDocumentId] 

我试过这个,但是不行。我正在尝试查看表中有多少[pomDocumentId][svPartNo]相匹配。

谢谢。

id   pomDocumentId   svPartNo 

4955  8298     5WK96132-E 
6131  14826     5WK96132-E 

这里是一个解决问题的查询:

select [svPartNo], count(svPartNo) as dup 
    from [ODW_Dev].[dbo].[tbl_ODW_PomItem] 
    group by [svPartNo] 
    having count(svPartNo)>1 
    order by dup desc 
+0

请提供一些样品数据。 – Wanderer

+2

'where [svPartNo] = [pomDocumentId]'? –

+0

就是这样,他们不平等。 – Nomonom

回答

0

好像你是一个简单的GROUP BYCOUNT后,运行下面的SQL与样本数据来进行测试:

DECLARE @tbl_ODW_PomItem AS TABLE 
    ([id] int, [pomDocumentId] int, [svPartNo] varchar(10)) 
; 

INSERT INTO @tbl_ODW_PomItem 
    ([id], [pomDocumentId], [svPartNo]) 
VALUES 
    (4955, 8298, '5WK96132-E'), 
    (6131, 14826, '5WK96132-E') 
; 


SELECT COUNT(pomDocumentId) DocCount, svPartNo 
FROM @tbl_ODW_PomItem 
GROUP BY svPartNo 

这将产生:

DocCount svPartNo 
====================== 
2   5WK96132-E 
0

尝试下面的代码。

SELECT svPartNo, COUNT(pomDocumentId) FROM TAB GROUP BY svPartNo