![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#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` "; Заранее огромное спасибо!!! |
![]() |
![]() |
![]() |
#2 |
Старожил
Регистрация: 15.02.2010
Сообщений: 15,833
|
![]()
Замените равнество на in
|
![]() |
![]() |
![]() |
#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 |