sql >> Database teknologi >  >> RDS >> Sqlserver

SQL, der deler 2 værdier fra 2 forespørgsler

Behandl grundlæggende disse to forespørgsler som underforespørgsler som nedenfor.

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

Hvis du ville tage det videre, kunne du have cvu.id'et som en del af valget og ændre sammenføjningen, så du kunne gøre det på tværs af alle cvu.id'er

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. Send parametre til MySQL-script

  2. Hvad er forskellen mellem Seq Scan og Bitmap heap-scanning i postgres?

  3. Læs tabulatorsepareret tekstfil ind i MySQL-tabel med PHP

  4. En oversigt over genererede kolonner til PostgreSQL