Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

SQL dzielący 2 wartości z 2 zapytań

Zasadniczo traktuj te dwa zapytania jako podzapytania, jak poniżej.

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

Jeśli chcesz posunąć się dalej, możesz mieć cvu.id jako część wyboru i modyfikacji połączenia, aby można było to zrobić we wszystkich plikach 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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Zarejestruj nową nazwę serwera w Sql Management Studio

  2. SQL do przeanalizowania ciągu klucz-wartość

  3. Wewnętrzne siedem sortowań SQL Server – część 2

  4. pisanie funkcji na serwerze sql

  5. SqlCommand.ExecuteScalar Anuluj