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

2つのクエリから2つの値を分割するSQL

    基本的にこれら 2 つのクエリは、以下のようにサブクエリとして扱います。

    select x.number / y.number 
    from
    (
      SELECT COUNT(cvu.[ID]) as number, 'Exp' AS [Exp]     
      FROM [dbo].[tblClientVehicleUnit] cvu     
      WHERE ExpirationDate < GetDate()     
      AND cvu.Id = '4C1' 
    ) x
    join 
    (
      SELECT COUNT(cvu.[ID]) as number, 'NonExp' AS [Exp]     
      FROM [dbo].[tblClientVehicleUnit] cvu     
      WHERE ExpirationDate > GetDate()     
      AND cvu.Id = '4C1'
    ) y on 1=1
    

    さらに進めたい場合は、cvu.id を選択の一部として使用し、結合を変更して、すべての cvu.id で実行できるようにすることができます

    select x.id, x.number / y.number 
    from
    (
    SELECT cvu.id, COUNT(cvu.[ID]) as number, 'Exp' AS [Exp]     
    FROM [dbo].[tblClientVehicleUnit] cvu     
    WHERE ExpirationDate < GetDate()     
    group by cvu.Id 
    ) x
    join 
    (
    SELECT cvu.id, COUNT(cvu.[ID]) as number, 'NonExp' AS [Exp]     
    FROM [dbo].[tblClientVehicleUnit] cvu     
    WHERE ExpirationDate > GetDate()     
    group by cvu.Id 
    )y on x.id = y.id
    


    1. SQLServerからのINSERTINTOを使用したSalesforceデータの変更

    2. 存在句にcount()があることを使用する

    3. 各グループの最大x行を選択します

    4. 非主キーへの外部キー