написать запрос без CTE - PullRequest
1 голос
/ 16 мая 2011

Как можно написать этот запрос в виджете 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]

Ответы [ 3 ]

2 голосов
/ 16 мая 2011

А как же

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          
1 голос
/ 16 мая 2011

Вы можете написать его как подзапрос.

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 голосов
/ 16 мая 2011

Объявить переменную таблицы и сделать то же самое

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...