нужно выбрать запрос или удалить запрос, чтобы получить этот результат или удалить повторяющиеся данные - PullRequest
0 голосов
/ 29 мая 2019

я получаю данные и хочу выбрать или удалить запрос, чтобы получить ожидаемый результат

запрос к серверу sql

select *,
         row_number() over (order by (select '' )) as seqnum
  from [elo].[dbo].[objkeys] 
  where parentid in (select parentid
                     from [elo].[dbo].[objekte] inner join
                          [elo].[dbo].[objkeys] 
                           on objid = parentid 
                     where objmask = '52' and okeydata like 'approve'
                  )

//// попробовать этот запрос, но не в порядке

с cte AS (выберите *, row_number () более (упорядочить по (выберите '')) как последовательность из [elo]. [Dbo]. [Objkeys], где находится парентид (выберите парентид из [elo]. [Dbo]. [objekte] внутреннее объединение [elo]. [dbo]. [objkeys] для objid = parentid, где objmask = '52' и okeydata, как 'Approve')) Удалить cte, где seqnum> 1

фактический результат

parentid    okeyno      okeyname        okeydata            
 652          0          NAME             uwk           
 652          1         NUMBER             1        
 652          2         ALAIETIMAD      approve     
 652          51        ELO_FNAME       16.jpg      

 653          0         NAME              uwk           
 653          1        NUMBER              1        
 653          2       ALAIETIMAD         approve        
 653         51       ELO_FNAME          16.jpg     

 656          0         NAME              b     
 656          1        NUMBER             1     
 656          2       ALAIETIMAD        approve     
 656         51       ELO_FNAME          14.jpg     

 657         0      NAME                  b     
 657         1      NUMBER                1     
 657         2      ALAIETIMAD         approve      
 657         51     ELO_FNAME          16.jpg       

 661         0      NAME              abdalah       
 661         1      NUMBER              1       
 661         2      ALAIETIMAD        approve       
 661         51     ELO_FNAME         16.jpg        

 662         0      NAME             abdalah        
 662         1      NUMBER             1        
 662         2      ALAIETIMAD       approve        
 662         51     ELO_FNAME        16.jpg 

нужно, чтобы результат был

parentid    okeyno      okeyname        okeydata            
 652          0      NAME                 uwk           
 652          1     NUMBER                 1        
 652          2     ALAIETIMAD         approve      
 652          51    ELO_FNAME          16.jpg       


 656          0     NAME                 b      
 656          1     NUMBER               1      
 656          2     ALAIETIMAD       approve        
 656         51     ELO_FNAME        14.jpg     



 661         0      NAME             abdalah        
 661         1      NUMBER             1        
 661         2      ALAIETIMAD       approve        
 661         51     ELO_FNAME        16.jpg     

1 Ответ

1 голос
/ 29 мая 2019

Можете ли вы попробовать следующее:

SELECT * FROM 
(
select *,
         row_number() over (order by (select '' )) as seqnum
  from [elo].[dbo].[objkeys] 
  where parentid in (select parentid
                     from [elo].[dbo].[objekte] inner join
                          [elo].[dbo].[objkeys] 
                           on objid = parentid 
                     where objmask = '52' and okeydata like 'approve'
                  )
) as t
where parentid in
(
SELECT DISTINCT min(parentid) FROM 
(
select *,
         row_number() over (order by (select '' )) as seqnum
  from [elo].[dbo].[objkeys] 
  where parentid in (select parentid
                     from [elo].[dbo].[objekte] inner join
                          [elo].[dbo].[objkeys] 
                           on objid = parentid 
                     where objmask = '52' and okeydata like 'approve'
                  )
) as t2
where okeyname = 'NAME'
group by okeyno,okeyname,okeydata
)
...