Я создаю запрос возвращает один номер: YTD как следует:Несколько вложенных в ВЫБИРАЕТ SQL Query
SELECT TableTemp.YTD
FROM(
SELECT((select COUNT(Items.ItemID) * 100 FROM Items WHERE Items.StatusID in (5,7,11) and year(Items.Close_Date) = 2016)/(select COUNT(Items.ItemID) FROM Items WHERE Items.StatusID in (5,7,11,6) and year(Items.Close_Date) = 2016) )As YTD
) AS TableTemp
GROUP BY TableTemp.YTD ;
Это работает отлично, но когда я добавить еще одну часть, чтобы вернуть другой номер YTD и thisMonth:
SELECT TableTemp.YTD , TableTemp.thisMonth
FROM(
(select((select COUNT(Items.ItemID) * 100 FROM Items WHERE Items.StatusID in (5,7,11) and year(Items.Close_Date) = 2016)/(select COUNT(Items.ItemID) FROM Items WHERE Items.StatusID in (5,7,11,6) and year(Items.Close_Date) = 2016)) As YTD,
(select ((select COUNT(Items.ItemID) * 100 FROM Items WHERE Items.StatusID in (5,7,11) and year(Items.Close_Date) = 2016 and month(Items.Close_Date) = 11)/(select COUNT(Items.ItemID) FROM Items WHERE Items.StatusID in (5,7,11,6) and year(Items.Close_Date) = 2016 and month(Items.Close_Date) = 11)) As thisMonth
) AS TableTemp
GROUP BY TableTemp.YTD
Даже если я упрощаю это
SELECT TableTemp.YTD , TableTemp.thisMonth
FROM(
select COUNT(Items.ItemID) As YTD
, select COUNT(Items.ItemID) As thisMonth
) AS TableTemp
GROUP BY TableTemp.YTD, TableTemp.thisMonth
Я получаю ошибку синтаксиса NEER выберите COUNT (Items.ItemID) Как thisM onth
кажется, что синтаксис неправильный. Любая идея о том, как это сделать?
Какая СУБД вы используете? –
Не используйте функции столбцов для фильтрации строк. Использование year (...) удаляет возможность доступа к индексу для этой volumn (в большинстве dbs) .. какой db вы используете ?, его важно знать это –