sql >> データベース >  >> Database Tools >> SSMS

以下の例に基づいてSQLServerからデータを取得するにはどうすればよいですか?

    たぶん、以下のようなソリューションを使用できます 動作デモを参照

    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. ローカルにインストールされた2つのデータベースをXamppと同期します

    2. 条件付き動的フィルタリングのselect-whereにネストされたif

    3. SQL ServerManagementStudioの履歴からサーバー名アイテムを削除する方法

    4. mysql-クエリ内のクエリ