2010-01-14 1 views
-1

Как я могу вычесть результат этого запроса:Как я subract с помощью одного одного заявления в MySQL

SELECT COUNT(Laptops) FROM (SELECT aaaUser.FIRST_NAME AS User,COUNT(workstation.WORKSTATIONNAME) AS Laptops FROM SystemInfo workstation 
LEFT JOIN Resources resource ON workstation.WORKSTATIONID=resource.RESOURCEID 
LEFT JOIN ResourceOwner rOwner ON resource.RESOURCEID=rOwner.RESOURCEID 
LEFT JOIN ResourceAssociation rToAsset ON rOwner.RESOURCEOWNERID=rToAsset.RESOURCEOWNERID 
LEFT JOIN SDUser sdUser ON rOwner.USERID=sdUser.USERID 
LEFT JOIN AaaUser aaaUser ON sdUser.USERID=aaaUser.USER_ID WHERE (aaaUser.FIRST_NAME IS NOT NULL) AND ISSERVER=0 
GROUP BY "User" 
HAVING Laptops > 1 
ORDER BY Laptops DESC) AS e 

из этого:

SELECT SUM(Laptops) FROM (SELECT aaaUser.FIRST_NAME AS User,COUNT(workstation.WORKSTATIONNAME) AS Laptops FROM SystemInfo workstation 
LEFT JOIN Resources resource ON workstation.WORKSTATIONID=resource.RESOURCEID 
LEFT JOIN ResourceOwner rOwner ON resource.RESOURCEID=rOwner.RESOURCEID 
LEFT JOIN ResourceAssociation rToAsset ON rOwner.RESOURCEOWNERID=rToAsset.RESOURCEOWNERID 
LEFT JOIN SDUser sdUser ON rOwner.USERID=sdUser.USERID 
LEFT JOIN AaaUser aaaUser ON sdUser.USERID=aaaUser.USER_ID WHERE (aaaUser.FIRST_NAME IS NOT NULL) AND ISSERVER=0 
GROUP BY "User" 
HAVING Laptops > 1 
ORDER BY Laptops DESC) AS e 

пока только с помощью одного запроса?

Я пытаюсь создать отчет в продукте, который не поддерживает запуск нескольких запросов, поэтому временные таблицы не являются опцией.

Спасибо заранее,

Бен

+0

-1: Пожалуйста понятнее. Каково ваше определение «вычесть» в этом смысле? Мы говорим о разнице в настройках? Вычитание значения строки? Пожалуйста, укажите пример ввода и желаемого вывода. – hobodave

ответ

2
SELECT SUM(Laptops) - COUNT(Laptops) 
from ... 

поскольку ваши агрегатные функции будет последнее, что применяется к результату вашего GROUP.

4

Если мне что-то не хватает, разве вы не можете это сделать?

SELECT SUM(Laptops) - COUNT(Laptops) 
FROM (SELECT aaaUser.FIRST_NAME AS User,COUNT(workstation.WORKSTATIONNAME) AS Laptops FROM SystemInfo workstation 
LEFT JOIN Resources resource ON workstation.WORKSTATIONID=resource.RESOURCEID 
LEFT JOIN ResourceOwner rOwner ON resource.RESOURCEID=rOwner.RESOURCEID 
LEFT JOIN ResourceAssociation rToAsset ON rOwner.RESOURCEOWNERID=rToAsset.RESOURCEOWNERID 
LEFT JOIN SDUser sdUser ON rOwner.USERID=sdUser.USERID 
LEFT JOIN AaaUser aaaUser ON sdUser.USERID=aaaUser.USER_ID WHERE (aaaUser.FIRST_NAME IS NOT NULL) AND ISSERVER=0 
GROUP BY "User" 
HAVING Laptops > 1 
ORDER BY Laptops DESC) AS e 
0
SELECT (SELECT query 1 ... ...) - (SELECT query 2 ... ...) AS 'value'; 
Смежные вопросы