Avatar billede weeelo Nybegynder
01. juni 2006 - 13:31 Der er 1 løsning

Odds-regnskab.

Hej eksperter,

Jeg sidder og roder med at få styr på en måde at lave regnskab over forskellige odds.

Jeg har en tabel, der ser ud som følger:

  `id` int(6) NOT NULL auto_increment,
  `match1` varchar(100) default NULL,
  `match2` varchar(100) default NULL,
  `odds1` decimal(3,2) default NULL,
  `odds2` decimal(3,2) default NULL,
  `bet1` varchar(10) default NULL,
  `bet2` varchar(10) default NULL,
  `winner1` int(1) NOT NULL default '2',
  `winner2` int(1) NOT NULL default '2',
  `country1` varchar(100) default NULL,
  `country2` varchar(100) default NULL,
  `league1` varchar(100) default NULL,
  `league2` varchar(100) default NULL,
  `time1` datetime default NULL,
  `time2` datetime default NULL,
  `bookmaker` varchar(100) default NULL,
  `text` text,
  `value` int(3) NOT NULL default '0',
  `user_id` int(6) default NULL,

Jeg kan sagtens lave simple udtræk, der viser de forskellige odds og hvormeget man eventuelt har vundet, men når jeg vil lave et udtræk om til en form for regnskab får jeg fejl.

Udtrækket ser således ud:

mysql_query("SELECT *,
odds1*odds2*value-value AS money,
odds1*value-value AS money1,
SUM(
IF(match2 = '' AND winner1 = 1, money1,
  IF(match2 = '' AND winner1 = 0, -value, 0))) AS regnskab1,
SUM(
IF(match2 != '' AND winner1 = 1 AND winner2 = 1, money,
  IF(match2 != '' AND (winner1 = 0 OR winner2 = 0), -value, 0))) AS regnskab2,
regnskab1+regnskab2 AS regnskab
    FROM bookie WHERE user_id='$_GET[id]'");

money viser gevinsten, hvis man har spillet en double.
money1 viser gevinsten, hvis man har spillet en single.
regnskab1 skulle gerne finde det samlede tab/overskud for singlerne.
regnskab2 skulle gerne finde det samlede tab/overskud for doublerne.
regnskab skulle gerne ligge de to sammen.

Problemet ligger i:
SUM(
IF(match2 = '' AND winner1 = 1, money1,
  IF(match2 = '' AND winner1 = 0, -value, 0))) AS regnskab1,
SUM(
IF(match2 != '' AND winner1 = 1 AND winner2 = 1, money,
  IF(match2 != '' AND (winner1 = 0 OR winner2 = 0), -value, 0))) AS regnskab2,

Skal jeg bruge IS/IS NOT og i så fald hvordan?

Lige til lidt forklaring:

Hvis match2 er tom er det et single spil, er den ikke det, er det en double.

winner1 og winner2 definerer om oddset er rigtig, forkert eller endnu ikke afgjort

0 = forkert
1 = rigtigt
2 = ikke afgjort

Håber det var forståeligt og at nogen kan se hvor mit problem ligger!

MVH Weeelo
Avatar billede weeelo Nybegynder
28. oktober 2006 - 10:08 #1
Lukker..
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester