[MySQL] Berekende velden bestaan niet volgens MySQL *

Pagina: 1
Acties:

  • 0528973
  • Registratie: Juni 2003
  • Laatst online: 15-05-2013
Hoi allemaal,

stel ik heb deze query:
SELECT
COUNT( HITTING.GAME_ID ) AS G,
SUM( R ) AS R,
SUM( H ) AS H,
SUM( 2B ) AS 2B,
SUM( 3B ) AS 3B,
SUM( HR ) AS HR,
SUM( RBI ) AS RBI,
SUM( BB ) AS BB,
SUM( SO ) AS SO,
SUM( SB ) AS SB,
SUM( CS ) AS CS,
SUM( SF ) AS SF,
SUM( SH ) AS SH,
SUM( HBP ) AS HBP,
SUM( IBB ) AS IBB,
SUM( GDP ) AS GDP,
SUM( TPA ) AS TPA,
SUM( TPA - BB - SH - SF - HBP ) AS AB,
SUM( H + 2B + 2 * 3B + 3 * HR ) AS TB,
ROUND( ( H + BB + HBP ) / TPA, 2) AS OBP,
ROUND( TB / AB, 2) AS SLG,
ROUND( H / AB, 2) AS AVG

FROM HITTING INNER JOIN GAMES ON HITTING.GAME_ID = GAMES.GAME_ID
WHERE GAMES.DATUM BETWEEN "2001%" AND "2010-01-01"
GROUP BY HITTING.PLAYER_ID
de velden vetgedrukte velden bestaan niet, deze worden berekend.
Waarom mekkert MYSQL erover dat de kolommen TB en AB niet bestaan in
ROUND( TB / AB, 2) AS SLG,
ROUND( H / AB, 2) AS AVG
en hoe kan ik dat oplossen?

Pascal


  • Gert
  • Registratie: Juni 1999
  • Laatst online: 05-12-2025
Ipv de naam te gebruiken referen naar het kolomnummer. Dat is nummer van de kolom optellend en beginnend bij de eerste in je query met nummer 1.

  • 0528973
  • Registratie: Juni 2003
  • Laatst online: 15-05-2013
Gert, hoe doe je dat referen?

Pascal


  • Fiets
  • Registratie: Maart 2000
  • Laatst online: 15:40

Fiets

A.K.A. Bambi

code:
1
2
ROUND( ( H + 2B + 2 * 3B + 3 * HR ) / ( TPA - BB - SH - SF - HBP ), 2) AS SLG, 
ROUND( H  / ( TPA - BB - SH - SF - HBP ), 2) AS AVG


mag zoiets niet gewoon?

Maar 2 DPC'ers op DHEP! Ahum, nu nog maar 0 aktieve leden...


  • 0528973
  • Registratie: Juni 2003
  • Laatst online: 15-05-2013
dat mag wel, maar vind ik niet netjes, wanneer TB verandert, moet ik dus 2 maal die berekening wijzigen

Pascal


  • momania
  • Registratie: Mei 2000
  • Laatst online: 22:52

momania

iPhone 30! Bam!

Laat maar...foutje.

[edit]
Die kolomen die je aanroept moeten nog geselecteerd worden , dus die kan je beter met een sub-query aanpakken.
Eerst dus alles selecteren wat je kan en dan op de berekende kolomen nog een select doen en daar berekeningen overheen gooien.

zoiets:

SQL:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
WITH BLA AS (
  SELECT 
    COUNT( HITTING.GAME_ID ) AS G, 
    SUM( R ) AS R, 
    SUM( H ) AS H, 
    SUM( 2B ) AS 2B, 
    SUM( 3B ) AS 3B, 
    SUM( HR ) AS HR, 
    SUM( RBI ) AS RBI, 
    SUM( BB ) AS BB, 
    SUM( SO ) AS SO, 
    SUM( SB ) AS SB, 
    SUM( CS ) AS CS, 
    SUM( SF ) AS SF, 
    SUM( SH ) AS SH, 
    SUM( HBP ) AS HBP, 
    SUM( IBB ) AS IBB, 
    SUM( GDP ) AS GDP, 
    SUM( TPA ) AS TPA, 
    SUM( TPA - BB - SH - SF - HBP ) AS AB, 
    SUM( H + 2B + 2 * 3B + 3 * HR ) AS TB,
    ROUND( ( H + BB + HBP ) / TPA, 2) AS OBP, 
  FROM 
    HITTING INNER JOIN GAMES ON HITTING.GAME_ID = GAMES.GAME_ID 
  WHERE 
    GAMES.DATUM BETWEEN "2001%" AND "2010-01-01" 
GROUP BY 
    HITTING.PLAYER_ID
)
SELECT
  *
  ROUND( TB / AB, 2) AS SLG, 
  ROUND( H / AB, 2) AS AVG 
FROM BLA;

[ Voor 139% gewijzigd door momania op 20-06-2003 15:20 ]

Neem je whisky mee, is het te weinig... *zucht*


  • 0528973
  • Registratie: Juni 2003
  • Laatst online: 15-05-2013
de kolom bestaat niet "echt", TB is een berekende kolom en die zou ik graag weer via TB verder in de query willen gebruiken

Pascal


  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Bij mijn weten kan/mag het idd niet. 't Is idd redelijk vervelend en ik ben er zelf ook meerdere malen tegenaan gelopen.

En overigens ook niet mysql specifiek.

Btw, ik hoop niet dat je kolommen echt R, H, 2B etc heten?? Want ik vind ze vrij lelijk/nietszeggend en dat is normaliter niet verstandig.

[ Voor 44% gewijzigd door ACM op 20-06-2003 15:37 ]


  • 0528973
  • Registratie: Juni 2003
  • Laatst online: 15-05-2013
ACM, ik neem aan dat jij niks met honkbal en stats doet :)
Dit zijn officiele benaming voor honkbal statistieken vandaar

Pascal


  • jochemd
  • Registratie: November 2000
  • Laatst online: 08-08 15:51
0528973 schreef op 20 June 2003 @ 15:39:
ACM, ik neem aan dat jij niks met honkbal en stats doet :)
Dit zijn officiele benaming voor honkbal statistieken vandaar
0528973, ik neem aan dat jij niks met computers en programmeren doet :)
Er is een officiele SQL standaard vandaar

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

jochemd schreef op 20 juni 2003 @ 15:50:
0528973, ik neem aan dat jij niks met computers en programmeren doet :)
Er is een officiele SQL standaard vandaar
Staat het gebruiken van bruikbare namen daarin? Of doel je op de namen die beginnen met een getal en de lengte van de namen? :)
Pagina: 1