|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
28.09.2022, 13:32 | #1 |
Новичок
Джуниор
Регистрация: 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` "; Заранее огромное спасибо!!! |
28.09.2022, 13:52 | #2 |
Старожил
Регистрация: 15.02.2010
Сообщений: 15,709
|
Замените равнество на in
|
28.09.2022, 20:03 | #3 |
Новичок
Джуниор
Регистрация: 28.09.2022
Сообщений: 2
|
Уточню, так?
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` "; |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
приложение 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 |