Visa ett inlägg
Oläst 2013-04-15, 22:07 #23
secag secag är inte uppkopplad
Medlem
 
Reg.datum: Nov 2012
Inlägg: 211
secag secag är inte uppkopplad
Medlem
 
Reg.datum: Nov 2012
Inlägg: 211
Har ett nytt problem nu.

Koden för att få "total_power" ifrån enskilda spelare fungerar bra. Men nu har jag en tabell med en lista på spelare där jag måste räkna ihop allas "total_power" till en enda stor summa. Vi kan kalla den "MEGA_TOTAL_POWER".

Jag tror att man någonstans skall lägga en s.k. sub-query?

Här är mitt försök vilket ger mig ett felmeddelanden som jag inte kan förstå:
PHP-kod:
SELECT *,
       
SUM
  
(SELECT CASE WHEN items.item_stat IS NULL THEN members.member_attack members.member_defence ELSE SUM(items.item_stat) + members.member_attack members.member_defence END AS total_power
   FROM members
   LEFT JOIN memberitems ON members
.member_id memberitems.memberitems_member
   LEFT JOIN items ON memberitems
.memberitems_item items.item_id
   GROUP BY members
.member_id) AS MEGA_TOTAL_POWER
FROM crews
WHERE id 

Här är tabellen 'crews'. Denna lagras alla olika allianser/grupper/klaner.

PHP-kod:
CREATE TABLE IF NOT EXISTS `crews` (
  `
idint(11NOT NULL AUTO_INCREMENT,
  `
namevarchar(20NOT NULL,
  `
moneyint(11NOT NULL,
  `
taxtinyint(3unsigned NOT NULL,
  `
attackint(10unsigned NOT NULL,
  `
defenceint(10unsigned NOT NULL,
  
PRIMARY KEY (`id`)
ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=;

INSERT INTO `crews` (`id`, `name`, `money`, `tax`, `attack`, `defence`) VALUES
(1'MuggemGansters'0000); 
Här är tabellen som lagras alla som är med i laget.

PHP-kod:
CREATE TABLE IF NOT EXISTS `crew_members` (
  `
crew_idint(11NOT NULL,
  `
user_idint(11NOT NULL,
  `
statustinyint(4NOT NULL
ENGINE=MyISAM DEFAULT CHARSET=latin1;

INSERT INTO `crew_members` (`crew_id`, `user_id`, `status`) VALUES
(119); 
Hittade denna länk om det kan vara till min hjälp?
http://www.sqlteam.com/article/aggre...ed-sub-queries

Senast redigerad av secag den 2013-04-15 klockan 22:13
secag är inte uppkopplad   Svara med citatSvara med citat