2017-07-19 53 views
1

我想写一个SQL查询,从随机查询中选择前4,这样我可以对某些情况进行质量检查。每个案例都有一个与客户相关的帐号。问题是每个案件都有一个唯一的号码,但可能有相同的帐号。如果一列的值相等,选择不同的行

我正在寻找的是如果两个案例中的帐号是相同的,让SQL选择一个不同帐号的新行。

Select Top 4 
    Account, 
    CaseNum 
From dbo.tblRequest 
Where LoggedDate Between GetDate() - 7 and GetDate() - 1 
Order By NewId(); 

结果将显示4个帐户,但有时可能显示同一个帐户两次。如上所述,我只想在7天内显示不同的帐户。

我已经尝试了不同的关键字,它仍然在某些查询结果中显示两次帐户。

回答

1

请尝试以下语句。使用row_number仅为相同的accountNumber在线。

SELECT * FROM (
     Select 
      Account, 
      CaseNum, 
      ROW_NUMBER()OVER(PARTITION BY Account ORDER BY GETDATE()) AS rn 
     From dbo.tblRequest 
     Where LoggedDate Between GetDate() - 7 and GetDate() - 1 
    ) AS t WHERE t.rn=1 
    Order By 
    NewId() 
+0

这工作谢谢你的帮助,我一直在这一整天工作。 –

相关问题