sql >> データベース >  >> RDS >> Sqlserver

発効日に基づいて現在のレコードを取得するにはどうすればよいですか?

    これを行うには他の方法があると思いますが、これでうまくいくと思います:

    DECLARE 
      @OrganizationID varchar(40)
    
    SET @OrganizationID = 'SMESM1HTOVEOVE'
    
    SELECT
      ro.ResourceID,
      ro.OrganizationID,
      max(ro.EffectiveDate)
    FROM
      ResourceOrganization ro
    WHERE
      ro.OrganizationID = @OrganizationID
    GROUP BY
      ro.ResourceID,
      ro.OrganizationID
    HAVING
      max(ro.EffectiveDate) = (
        SELECT 
          max(EffectiveDate)
        FROM 
          ResourceOrganization
        WHERE 
          ResourceID = ro.ResourceID)
    

    これは SQLFiddle です。

    編集:実際、それはおそらく複雑すぎるでしょう。これを試してください:

    DECLARE 
      @OrganizationID varchar(40)
    
    SET @OrganizationID = 'SMESM1HTOVEOVE'
    
    SELECT
      ro.ResourceID,
      ro.OrganizationID,
      ro.EffectiveDate
    FROM
      ResourceOrganization ro
    WHERE
      ro.OrganizationID = @OrganizationID
      AND ro.EffectiveDate = (
        SELECT 
          max(EffectiveDate)
        FROM 
          ResourceOrganization
        WHERE 
          ResourceID = ro.ResourceID)
    


    1. mybatisでページネーションを行う方法は?

    2. MySQL浮動小数点比較の問題

    3. Pythonのflask.ext.mysqlは非推奨ですか?

    4. 「必要な」権限の問題でOCIErrorが発生しますか?