来自另一个表的行值

时间:2014-08-18 13:12:33

标签: sql sql-server tsql select

我有一个表有2个重复行(总共3行),所以我使用下面的代码来获取列中的重复值

SELECT CustNo, COUNT(*) TotalCount
FROM Rental
GROUP BY CustNo
HAVING COUNT(*) > 1
ORDER BY COUNT(*) DESC

因此,一旦我获得重复值,我需要从客户表中获取作为重复派生的CustNo。如何获取此值并在同一查询中的选择语句中使用它。 我也有像这样准备的选择声明。

Select *  from Customer where  CustNo = 'T0002';

感谢。

4 个答案:

答案 0 :(得分:3)

Select * from Customer 
where CustNo IN
(
  SELECT CustNo
  FROM Rental
  GROUP BY CustNo
  HAVING COUNT(*) > 1
)

答案 1 :(得分:1)

您可以使用join

SELECT c.*
FROM (SELECT CustNo, COUNT(*) TotalCount
      FROM Rental
      GROUP BY CustNo
      HAVING COUNT(*) > 1
     ) cc JOIN
     Customer c
     on cc.CustNo = c.CustNo;

答案 2 :(得分:1)

Select C.*  from Customer C RIGHT JOIN (
SELECT CustNo
FROM Rental
GROUP BY CustNo
HAVING COUNT(*) > 1) D
ON C.CustNo = D.CustNo

答案 3 :(得分:1)

你也可以试试这个,

以tblDups为( 选择CustNo,从a_rental计算(CustNo)为TotalCount 由CustNo分组 有计数(CustNo)> 1)

从a_rental b中选择b。* 内部联接tblDups a on a.CustNo = b.Custno