sql >> Databáze >  >> RDS >> Sqlserver

SQL dělení 2 hodnot ze 2 dotazů

V zásadě zacházejte s těmito dvěma dotazy jako s dílčími dotazy, jak je uvedeno níže.

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

Pokud byste to chtěli posunout dále, mohli byste mít cvu.id jako součást výběru a upravit spojení, abyste to mohli udělat napříč všemi 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. MySQL Alter Stored Procedure

  2. MySQL vrátí první a poslední záznam pro po sobě jdoucí identické výsledky

  3. COLLATION 'utf8_general_ci' není platné pro ZNAKOVOU SADA 'latin1'

  4. Problémy s dotazem Mysql pomocí LIKE a apostrofu