SSMS
 sql >> Baza danych >  >> Database Tools >> SSMS

Jak pobrać dane z SQL Server na poniższym przykładzie?

Może przyda Ci się rozwiązanie takie jak poniżejZobacz działające demo

declare @d date='2018-Jun-03'

; with Indexer as 
(
    select 
        *, 
        rn= row_number() over(partition by CustName order by RecordedTime),
        rn2=row_number() over(partition by CustName order by RecordedTime desc)
    from records
)
,GetValidCustomerRecords as
(
    select 
        CustName,
        Country,
        RecordedTime,
        Audit   = case when cast(RecordedTime as date)[email protected] and rn=1 then 'add' else 'change' end,
        History = case 
                    when cast(RecordedTime as date)[email protected] and rn=1 
                    then 'new' 
                    when cast(RecordedTime as date)<@d and rn=1 
                    then 'before'
                    else 'current' end
    from Indexer i 
    where CustName in
    (
    select 
        distinct CustName 
    from records
    where cast(RecordedTime as date)[email protected]
    ) 
    and (rn=1 or rn2=1) and cast(RecordedTime as date)<[email protected]
)

select * from GetValidCustomerRecords
order by CustName, RecordedTime



  1. DBeaver
  2.   
  3. phpMyAdmin
  4.   
  5. Navicat
  6.   
  7. SSMS
  8.   
  9. MySQL Workbench
  10.   
  11. SQLyog
  1. Przyzwoity prosty klient SQL Server

  2. Edytuj dtsx przez SSMS

  3. CTRL+R nie ukrywa okna Wynik zapytania w SSMS

  4. Znajdź procedurę składowaną według nazwy

  5. Jak wyświetlić kod procedury składowanej w SQL Server Management Studio