sql >> Databasteknik >  >> RDS >> Sqlserver

SQL som delar 2 värden från 2 frågor

Behandla i princip dessa två frågor som underfrågor enligt nedan.

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

Om du vill ta det längre kan du sedan ha cvu.id som en del av urvalet och ändra sammanfogningen så att du kan göra det över alla cvu.id:s

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. mysql unika nummergenerering

  2. Visa mysql slumpmässigt resultat

  3. SQL Server Error 110:Det finns färre kolumner i INSERT-satsen än de värden som anges i VALUES-satsen.

  4. Datahandledning:Använda fönsterfunktioner