Ошибка MySQL: подзапрос возвращает более 1 строки

Получение ошибки: #1242 - Subquery returns more than 1 row

при выполнении этого

SELECT `Index` , `FundName` ,Count(*), 
    (SELECT COALESCE(sum(b.PricePerWeek),0) 
     FROM tbl_FundSubscriptions
     WHERE DATE_SUB(CURDATE(),INTERVAL 7 DAY) <= SubscribeDt  
     GROUP BY FundIDSend)

FROM tbl_FundSubscriptions b, tbl_FundStatic a

WHERE a.FundID = b.FundIDSend

AND FundIDSend IN 
    (SELECT FundID
     FROM tbl_FundStatic
     WHERE UserID = '14')

GROUP BY a.FundName,a.Index 

Что может быть не так?

Спасибо

2 ответа

Решение

Это запрос, который вы ищете? Не зная структуры вашей таблицы, мы никогда не узнаем, но это делает то, что, по-видимому, было сделано для вашего запроса. (Это имеет какой-то смысл вообще?)

SELECT `Index`, `FundName`, COUNT(*), 
    (SELECT SUM(`PricePerWeek`)
     FROM `tbl_FundSubscriptions`
     WHERE DATE_SUB(CURDATE(),INTERVAL 7 DAY) <= `SubscribeDt` 
           AND `FundIDSend` = `tbl_FundStatic`.`FundID`)

FROM `tbl_FundStatic`

WHERE `UserID` = '14'

Ваш подзапрос возвращает более 1 строки.

Или вы LIMIT подзапрос к одной строке или вам LEFT JOIN это с другой таблицей.

Другие вопросы по тегам