PDA

Bekijk Volledige Versie : MySQL vraagje



R F
27/03/03, 16:20
Ik heb een klein probleempje. Om het uit te leggen geef ik een simpel
voorbeeld van een mysql query:

select excl_btw as excl, btw, excl+btw as incl from boekhouding;

Nu krijg ik de melding dat hij "excl" niet kent terwijl ik deze vlak ervoor
heb ingevuld. Nu zul je misschien zeggen, doe het zo:

select excl_btw as excl, btw, excl_btw+btw as incl from boekhouding;

Bij dit voorbeeld kan dit erg goed, maar stel dat "excl" wordt berekend met
een vrij lange formule dan zou ik die formule niet graag nog een keer in de
query willen opnemen. Een verwijzing naar de eerdere uitkomst zou dan veel
sneller en simpeler zijn.

Is hier een oplossing voor?

Groet, Rudolph

Ronald Paul
27/03/03, 18:05
R F <nospam@nospam.com> schreef:

>Ik heb een klein probleempje. Om het uit te leggen geef ik een simpel
>voorbeeld van een mysql query:
>
>select excl_btw as excl, btw, excl+btw as incl from boekhouding;
>
>Nu krijg ik de melding dat hij "excl" niet kent terwijl ik deze vlak ervoor
>heb ingevuld.

Het klopt dat hij daar een foutmelding op geeft. Ik citeer uit
hoofdstuk A.5.4 van de handleiding: "You can use an alias to refer to
a column in the GROUP BY, ORDER BY, or in the HAVING part", en dus kun
je een alias niet gebruiken in een SELECT zelf.

Ik ben geen expert, maar ik denk dat je er niet aan ontkomt om de
berekeningen een niveau omhoog te plaatsen (naar hetgeen de gegevens
ophaalt uit de MySQL-database).

--
Groet, Ronald

Clubberboy
28/03/03, 01:20
Ronald Paul wrote:
> Het klopt dat hij daar een foutmelding op geeft. Ik citeer uit
> hoofdstuk A.5.4 van de handleiding: "You can use an alias to refer to
> a column in the GROUP BY, ORDER BY, or in the HAVING part", en dus kun
> je een alias niet gebruiken in een SELECT zelf.
>
> Ik ben geen expert, maar ik denk dat je er niet aan ontkomt om de
> berekeningen een niveau omhoog te plaatsen (naar hetgeen de gegevens
> ophaalt uit de MySQL-database).

je hebt nog iets anders voor,
als je AS gebruikt bij select dan duidt dat de kolomnaam aan.
maar dat wordt zelden gebruikt voor webdevelopment


--
************************
http://www.techtronix.be

Ronald Paul
28/03/03, 09:50
"Clubberboy" <clubberboy@pandora.be> schreef:

>je hebt nog iets anders voor,
>als je AS gebruikt bij select dan duidt dat de kolomnaam aan.

Ik snap het niet helemaal. Wat is dan precies dat 'iets anders'?

--
Groet, Ronald

R F
28/03/03, 10:50
Ronald Paul wrote:

> "Clubberboy" <clubberboy@pandora.be> schreef:
>
>>je hebt nog iets anders voor,
>>als je AS gebruikt bij select dan duidt dat de kolomnaam aan.
>
> Ik snap het niet helemaal. Wat is dan precies dat 'iets anders'?
>
Ik snap je ook niet maar volgens mij is er dus geen oplossing voor. Ik heb
de query nu zo gemaakt dat de berekeningen twee maal worden uitgevoerd. Het
gaat altijd om maximaal 4 records dus qua rekentijd zit het ook wel goed.
Echter: mooi is anders.

Bedankt voor alle reacties,

Rudolph

Arnold Hendriks
28/03/03, 11:35
R F <nospam@nospam.com> wrote:
>>>je hebt nog iets anders voor,
>>>als je AS gebruikt bij select dan duidt dat de kolomnaam aan.
>>
>> Ik snap het niet helemaal. Wat is dan precies dat 'iets anders'?
>>
> Ik snap je ook niet maar volgens mij is er dus geen oplossing voor. Ik heb
> de query nu zo gemaakt dat de berekeningen twee maal worden uitgevoerd. Het
> gaat altijd om maximaal 4 records dus qua rekentijd zit het ook wel goed.
> Echter: mooi is anders.

Ik weet niet of MySQL views ondersteunt, maar anders kun je misschien
een view maken, met een extra kolom met daarin de berekende waarde, en
dan vervolgens weer uit die view selecteren?

--
Arnold Hendriks <a.hendriks@b-lex.com>
B-Lex Information Technologies, http://www.b-lex.com/

Clubberboy
28/03/03, 11:35
Ronald Paul wrote:
> Ik snap het niet helemaal.

voorbeeld 1:
SELECT id, dsfqsdfdsfd AS naam
FROM teams

resultaat:

id | naam
----------------
1 mohammed
2 achmed

voorbeeld 2:
SELECT id, dsfqsdfdsfd
FROM teams

resultaat:
id | dsfqsdfdsfd
----------------
1 mohammed
2 achmed



--
************************
http://www.techtronix.be

Ronald Klip
28/03/03, 11:35
Clubberboy schreef:
> Ronald Paul wrote:
> > Ik snap het niet helemaal.
>
> voorbeeld 1:
> SELECT id, dsfqsdfdsfd AS naam
> FROM teams
>
> id | naam
> ----------------
> 1 mohammed
> 2 achmed

Mooi. En hoe kom je bij <quote>maar dat wordt zelden gebruikt voor
webdevelopment</quote>?

--
groet, Ronald

Ronald Paul
28/03/03, 17:05
"Clubberboy" <clubberboy@pandora.be> schreef:

>> Ik snap het niet helemaal.
>
>voorbeeld 1:
>SELECT id, dsfqsdfdsfd AS naam
>FROM teams

[..]

>voorbeeld 2:
>SELECT id, dsfqsdfdsfd
>FROM teams

Precies wat ik ook dacht, maar dat werd dus al gebruikt. Daarom snap
ik jouw bericht niet omdat dat helemaal niets anders is.

--
Groet, Ronald

PanMan
31/03/03, 20:05
On Thu, 27 Mar 2003 23:43:40 GMT, "Clubberboy" <clubberboy@pandora.be>
grabbed a keybord and dumped this in nl.internet.www.server-side :

>Ronald Paul wrote:
>> Het klopt dat hij daar een foutmelding op geeft. Ik citeer uit
>> hoofdstuk A.5.4 van de handleiding: "You can use an alias to refer to
>> a column in the GROUP BY, ORDER BY, or in the HAVING part", en dus kun
>> je een alias niet gebruiken in een SELECT zelf.
>>
>> Ik ben geen expert, maar ik denk dat je er niet aan ontkomt om de
>> berekeningen een niveau omhoog te plaatsen (naar hetgeen de gegevens
>> ophaalt uit de MySQL-database).
>
>je hebt nog iets anders voor,
>als je AS gebruikt bij select dan duidt dat de kolomnaam aan.
>maar dat wordt zelden gebruikt voor webdevelopment

Wat is dat voor een onzin?
Bij simpele query's is het idd niet nodig.
Maar bij ingewikkelde is het zeker handig, OOk in webdevelopment.
Deel van een query van mij:
(personeelskosten + bemiddelingskosten + kantoorbenodigdheden
+ telefoon + abonnementen + administratiekosten + advieskosten
+ verzekeringen + computerkosten + drukwerkkosten + autokosten
+ internetkosten + advertentiekosten + diners + bankkosten
+ autofinanciering + rente + afschrijvingskosten) as kosten
(btw, iemand een marnier om dit korter te doen? :))
Greetz,
PanMan.
--
Have you ever had a dream, that you were so sure it was real?
What if you were unable to wake from that dream?
How would you know the difference between the dream world,
and the real world? - The Matrix.

Ronald Paul
31/03/03, 21:35
PanMan <use.the@reply.to.adress> schreef:

>Deel van een query van mij:
>(personeelskosten + bemiddelingskosten + kantoorbenodigdheden
>+ telefoon + abonnementen + administratiekosten + advieskosten
>+ verzekeringen + computerkosten + drukwerkkosten + autokosten
>+ internetkosten + advertentiekosten + diners + bankkosten
>+ autofinanciering + rente + afschrijvingskosten) as kosten
>(btw, iemand een marnier om dit korter te doen? :)

Ja: normaliseren. Een aparte tabel met daarin minimaal een foreign key
naar de originele tabel, een kolom kosten en een kolom type (die je
definiƫerd als ENUM('personeel', 'bemiddeling', ..., 'afschrijving').
Alle kosten kun je dan ophalen met een join en een SUM.

--
Groet, Ronald

Clubberboy
01/04/03, 12:20
PanMan wrote:
> Deel van een query van mij:
> (personeelskosten + bemiddelingskosten + kantoorbenodigdheden
> + telefoon + abonnementen + administratiekosten + advieskosten
> + verzekeringen + computerkosten + drukwerkkosten + autokosten
> + internetkosten + advertentiekosten + diners + bankkosten
> + autofinanciering + rente + afschrijvingskosten) as kosten
> (btw, iemand een marnier om dit korter te doen? :))

je kan hiervoor ook een view gebruiken, maar die mogelijkheid wist een
bolleboos als jij vast & zeker wel

--
************************
http://www.techtronix.be

David Baakman
01/04/03, 12:50
In article <%Edia.17751$t_2.1759@afrodite.telenet-ops.be>,
clubberboy@pandora.be says...
> PanMan wrote:
> > Deel van een query van mij:
> > (personeelskosten + bemiddelingskosten + kantoorbenodigdheden
> > + telefoon + abonnementen + administratiekosten + advieskosten
> > + verzekeringen + computerkosten + drukwerkkosten + autokosten
> > + internetkosten + advertentiekosten + diners + bankkosten
> > + autofinanciering + rente + afschrijvingskosten) as kosten
> > (btw, iemand een marnier om dit korter te doen? :))
>
> je kan hiervoor ook een view gebruiken, maar die mogelijkheid wist een
> bolleboos als jij vast & zeker wel

In een echte RDBMS kan dat inderdaad, maar MySQL ondersteunt uiteraard
geen views. Ze worden zo rond versie 5.0 verwacht...

David
--
Cal42a Flatlog: http://kristo.student.utwente.nl/~flat/
Persoonlijk pagina: http://www.davidbaakman.nl/

Clubberboy
01/04/03, 13:05
David Baakman wrote:

> In een echte RDBMS kan dat inderdaad, maar MySQL ondersteunt uiteraard
> geen views. Ze worden zo rond versie 5.0 verwacht...

Enig idee wanneer die versie uitkomt?
PHP 5.0 wordt verwacht over een paar maanden. Dat ziet er in ieder geval
veelbelovend uit.
<URL:http://www.phpvolcano.com/eide/php5.php?page=front>

--
************************
http://www.techtronix.be