Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 28.09.2022, 13:32   #1
zefirok
Новичок
Джуниор
 
Регистрация: 28.09.2022
Сообщений: 2
По умолчанию Сломали запрос :-(

Всем привет! Я учусь на С++ программиста и для хобби копаюсь в одной игрушке онлайновой.
В игрушке есть ПвП (игрок против игрока), хотел разделить подсчет убийств на простые (FRAG) и убийства на Арене (FRAG_ARENA) и SQL запрос сломался, ничего не выдает.

В SQL понимаю только базовые запросы, так что такой запрос для меня как Теория Струн. Помогите пожалуйста.

Изначальный запрос(рабочий):

query << "SELECT `scores`.`guid`, `c`.`level`, `c`.`account`, `c`.`RankPoints`, `c`.`HighestRank`, SUM(`kpoints`), SUM(`fpoints`), SUM(`rewpoints`) FROM"
"("
" SELECT `guid` AS `guid`, COUNT(*) AS `kpoints`, 0 AS `fpoints`, SUM(`rewpoints`) AS `cp` FROM `character_kill_rewpoints` WHERE `type` = " << FRAG <<
" AND (`date` BETWEEN " << weekBeginDay << " AND " << weekEndDay << ") GROUP BY `guid`"
" UNION"
" SELECT `guid` AS `guid`, 0 AS `kpoints`, COUNT(*) AS `fpoints`, 0 AS `rewpoints` FROM `character_kill_rewpoints` WHERE `type` = " << FAIL <<
" AND (`date` BETWEEN " << weekBeginDay << " AND " << weekEndDay << ") GROUP BY `guid`"
" UNION"
" SELECT `guid` AS `guid`, 0 AS `kpoints`, 0 AS `fpoints`, SUM(`rewpoints`) AS `cp` FROM `character_kill_rewpoints` WHERE `type` NOT IN (" << FRAG << ", " << FAIL << ")"
" AND (`date` BETWEEN " << weekBeginDay << " AND " << weekEndDay << ") GROUP BY `guid`"
" UNION"
" SELECT `guid` AS `guid`, 0 AS `kpoints`, 0 AS `fpoints`, 0 AS `rewpoints` FROM `characters` WHERE `RankPoints` > 0"
") AS `scores` INNER JOIN `characters` AS `c` ON `scores`.`guid` = `c`.`guid` GROUP BY `guid` ORDER BY `guid` ";



Мой запрос(добавил FRAG_ARENA):

query << "SELECT `scores`.`guid`, `c`.`level`, `c`.`account`, `c`.`RankPoints`, `c`.`HighestRank`, SUM(`kpoints`), SUM(`fpoints`), SUM(`rewpoints`) FROM"
"("
" SELECT `guid` AS `guid`, COUNT(*) AS `kpoints`, 0 AS `fpoints`, SUM(`rewpoints`) AS `cp` FROM `character_kill_rewpoints` WHERE `type` = (" << FRAG << ", " << FRAG_ARENA << ")"
" AND (`date` BETWEEN " << weekBeginDay << " AND " << weekEndDay << ") GROUP BY `guid`"
" UNION"
" SELECT `guid` AS `guid`, 0 AS `kpoints`, COUNT(*) AS `fpoints`, 0 AS `rewpoints` FROM `character_kill_rewpoints` WHERE `type` = " << FAIL <<
" AND (`date` BETWEEN " << weekBeginDay << " AND " << weekEndDay << ") GROUP BY `guid`"
" UNION"
" SELECT `guid` AS `guid`, 0 AS `kpoints`, 0 AS `fpoints`, SUM(`rewpoints`) AS `cp` FROM `character_kill_rewpoints` WHERE `type` NOT IN (" << FRAG << ", " << FRAG_ARENA << ", " << FAIL << ")"
" AND (`date` BETWEEN " << weekBeginDay << " AND " << weekEndDay << ") GROUP BY `guid`"
" UNION"
" SELECT `guid` AS `guid`, 0 AS `kpoints`, 0 AS `fpoints`, 0 AS `rewpoints` FROM `characters` WHERE `RankPoints` > 0"
") AS `scores` INNER JOIN `characters` AS `c` ON `scores`.`guid` = `c`.`guid` GROUP BY `guid` ORDER BY `guid` ";



Заранее огромное спасибо!!!
zefirok вне форума Ответить с цитированием
Старый 28.09.2022, 13:52   #2
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,833
По умолчанию

Замените равнество на in
p51x вне форума Ответить с цитированием
Старый 28.09.2022, 20:03   #3
zefirok
Новичок
Джуниор
 
Регистрация: 28.09.2022
Сообщений: 2
По умолчанию

Цитата:
Сообщение от p51x Посмотреть сообщение
Замените равнество на in
Уточню, так?

query << "SELECT `scores`.`guid`, `c`.`level`, `c`.`account`, `c`.`RankPoints`, `c`.`HighestRank`, SUM(`kpoints`), SUM(`fpoints`), SUM(`rewpoints`) FROM"
"("
" SELECT `guid` AS `guid`, COUNT(*) AS `kpoints`, 0 AS `fpoints`, SUM(`rewpoints`) AS `cp` FROM `character_kill_rewpoints` WHERE `type` IN (" << FRAG << ", " << FRAG_ARENA << ")"
" AND (`date` BETWEEN " << weekBeginDay << " AND " << weekEndDay << ") GROUP BY `guid`"
" UNION"
" SELECT `guid` AS `guid`, 0 AS `kpoints`, COUNT(*) AS `fpoints`, 0 AS `rewpoints` FROM `character_kill_rewpoints` WHERE `type` = " << FAIL <<
" AND (`date` BETWEEN " << weekBeginDay << " AND " << weekEndDay << ") GROUP BY `guid`"
" UNION"
" SELECT `guid` AS `guid`, 0 AS `kpoints`, 0 AS `fpoints`, SUM(`rewpoints`) AS `cp` FROM `character_kill_rewpoints` WHERE `type` NOT IN (" << FRAG << ", " << FRAG_ARENA << ", " << FAIL << ")"
" AND (`date` BETWEEN " << weekBeginDay << " AND " << weekEndDay << ") GROUP BY `guid`"
" UNION"
" SELECT `guid` AS `guid`, 0 AS `kpoints`, 0 AS `fpoints`, 0 AS `rewpoints` FROM `characters` WHERE `RankPoints` > 0"
") AS `scores` INNER JOIN `characters` AS `c` ON `scores`.`guid` = `c`.`guid` GROUP BY `guid` ORDER BY `guid` ";
zefirok вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
приложение Weather, делаю запрос оп всем параметрам, которые были указанны на сайте, но запрос не выполняется MustafaDzhemadin Помощь студентам 2 19.11.2019 00:14
SQL запрос в php - запрос в базу данных так, чтобы еще возвращалось значение, сколько строк затронуто volni PHP 29 16.09.2019 11:49
Запрос на выборку и отчет на этот запрос Camelot_2012 Microsoft Office Access 2 21.12.2011 16:48
Запрос с CASE переделать в запрос с PIVOT (MS SQL Server 2005) Машуля SQL, базы данных 4 06.05.2010 21:09