2011-05-16 51 views
1

如何寫這個查詢widit CTE?寫一個沒有CTE的查詢

with cte as(
select FK#GharardadeAsli,MAX(PK#Shenase) as PK#Shenase,Max(TarikheSabt) as TarikheSabt from TBL#Gharardad where FK#GharardadeAsli is not null group by FK#GharardadeAsli 
) 
select * from v#gharardad inner join cte on cte.PK#Shenase = v#gharardad.[Shenase] 

回答

1

你可以把它寫成一個子查詢。

select * 
    from v#gharardad 
    inner join (select FK#GharardadeAsli, 
        MAX(PK#Shenase) as PK#Shenase, 
        Max(TarikheSabt) as TarikheSabt 
       from TBL#Gharardad 
       where FK#GharardadeAsli is not null 
       group by FK#GharardadeAsli 
      ) sub on sub.PK#Shenase = v#gharardad.[Shenase] 
+0

u能告訴我它的LINQ平等的嗎? – Saleh 2011-05-16 11:50:32

+1

我可以,我會努力工作並在稍後更新。 – Leons 2011-05-16 12:23:53

+0

我想我自己,但我有這樣的問題,在linq.It組似乎比sql更難 – Saleh 2011-05-16 13:22:48

2

什麼

SELECT * 
FROM (
      select FK#GharardadeAsli 
        , MAX(PK#Shenase) as PK#Shenase 
        , Max(TarikheSabt) as TarikheSabt 
      from TBL#Gharardad 
      where FK#GharardadeAsli is not null 
      group by FK#GharardadeAsli 
     ) v 
     INNER JOIN (
      select FK#GharardadeAsli 
        , MAX(PK#Shenase) as PK#Shenase 
        , Max(TarikheSabt) as TarikheSabt 
      from TBL#Gharardad 
      where FK#GharardadeAsli is not null 
      group by FK#GharardadeAsli 
     ) cte ON cte.Shenase = v.Shenase   
+0

+1 It works too – Saleh 2011-05-16 11:46:53

+0

你能告訴我它的linq是否相等? – Saleh 2011-05-16 11:50:55

+0

@LightWing - 對不起,我不知道。 – 2011-05-16 11:57:07

-1

申報表變量,做同樣的事情

+0

這不是很好的解決方案,但我不會投入。 – Saleh 2011-05-16 11:48:21

+0

我有一個報價爲您接受正確答案通過點擊它打勾符號 – Saleh 2011-05-16 11:52:18