2016-01-22 51 views
-2

表1如何获得的基于表2总数从表1中的记录数

Rowno name   Date 
------------------------------------ 
1  sathish  Dec 21  
2  kumar   Dec 22 
3  sathish  Dec 21 
4  sathish  Dec 22 
5  sathish  Dec 21 
5  sathish  Dec 22 

表2

Date   NoofTran 
----------------------- 
Dec22   2 
Dec21   1 

我想基础上,table2nooftran值从table1得到记录并随机。

12月21日,有3条记录,显示的记录数是2,它应该从随机取出。

我应该使用什么SQL查询?

+3

提供SQL查询 –

+1

这是非常清楚你在做什么问。添加预期结果,也许我会理解这个问题。 – jarlh

+0

12月21日,nooftran应该是2,所以两个记录应该从表1中看出来,它应该是随机的情况。 所以rownum 1和3或5会来 – sathish

回答

0

您可以通过NoofTran刚刚加入两个表和订单

select Table1.* 
from Table1 T1 
inner join Table2 T2 
on T1.[Date] = T2.[Date] 
order by T2.NoofTran DESC 

这会给你的结果NoofTran为了

+0

这不是我想要的正确查询...在表2中,对于Dec 22nd,noofTrans是2,所以只有两条记录从表1中获取它并且随机的,即3个任何两个应该来那个特定的日期 – sathish

0
WITH CTE AS (
     SELECT *, ROW_NUMBER() 
     OVER (
      PARTITION BY T1.Date 
      order by NEWID() 
     ) AS RN 
     FROM Table1 T1 
    ) 
    SELECT CTE.RowNo,CTE.Date, CTE.Name 
    FROM CTE INNER JOIN Table2 T2 
    ON T2.date=cte.Date 
    WHERE RN <= T2.NoofTran 
相关问题