Задать вопрос
MaxxxNSK
@MaxxxNSK
очень начинающий

Как правильно составить запрос sql?

Добрый день!
Есть 2 таблицы: answer, question

answer
1. tgid
2. reward
3. dateadd

question
1. tgid
2. dateadd

Требуется подсчитать сумму reward в answer за текущий месяц тех tgid, которые присутствуют в question за текущий месяц

Сделал так, выдает лабуду

SELECT SUM( reward ) , tgid
FROM answer
WHERE tgid
IN (

SELECT tgid
FROM question
WHERE isactual !=  '0'
AND EXTRACT(YEAR_MONTH FROM dateadd) = EXTRACT(YEAR_MONTH FROM CURRENT_DATE()) 
GROUP BY tgid
HAVING COUNT( * ) >=1
)

AND EXTRACT(YEAR_MONTH FROM dateadd) = EXTRACT(YEAR_MONTH FROM CURRENT_DATE()) 
ORDER by SUM( reward ) DESC LIMIT 10


По отдельности запросы работают, в сумме - нет. Подскажите в чем проблема?
  • Вопрос задан
  • 54 просмотра
Подписаться 1 Простой Комментировать
Решения вопроса 1
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
SELECT `tgid`, SUM(`reward`) AS `reward`
  FROM `answer`
  WHERE `tgid` IN (
    SELECT `tgid`
      FROM `question`
      WHERE `dateadd` >= CURDATE() - INTERVAL DAYOFMONTH(CURDATE())-1 DAY
  ) AND `dateadd` >= CURDATE() - INTERVAL DAYOFMONTH(CURDATE())-1 DAY
  GROUP BY `tgid`
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы