Ответ 1
Ты можешь использовать:
select
(Select Count(*) as StockCountA from Table_A where dept='AAA') as StockCountA,
(Select Count(*) as StockCountB from Table_B where dept='BBB') as StockCountB
Объяснение: вы можете выбрать одно значение в качестве поля в операторе выбора, чтобы вы могли написать что-то вроде
select
x.*,
(select Value from Table_Y y) as ValueFromY
from
Table_X x
Это будет работать только со скалярными запросами, что означает, что подзапрос должен иметь ровно 1 столбец и не более 1 строки. При 0 строках ValueFromY вернет NULL
а при наличии более 1 строки запрос не будет выполнен.
Дополнительная функция select
(в SQL Server, MySQL и, возможно, в других) заключается в том, что вы можете выбирать только значения без указания таблицы вообще, например так:
Select
3.14 as MoreOrLessPI
Вы можете объединить оба этих факта, чтобы объединить два числа в один результат, написав запрос, который выглядит следующим образом:
Select
(Select query that returns at most 1 row) as Result1,
(Select another query that returns at most 1 row) as Result2