Toon posts:

[MySQL] Sorteren op het verschil tussen twee velden *

Pagina: 1
Acties:

Verwijderd

Topicstarter
Edit : Sorry, het gaat dus op MySQL

Tabel fondsen
- ID (int 12, primary key)
- REF (varchar 255)
- BEURSID (int 11)
- 1038320791 (varchar 10)
- 1038335848 (varchar 10)

1038320791 en 1038335848 zijn timestamps welke worden aangemaakt bij een update van de gegevens. Bij elke update komt er een nieuw timestamp veld bij. Het is de bedoeling dat er gesorteerd wordt op het verschil tussen de laatste twee timestamp velden. Om het mezelf makkelijk te maken heb ik nog een andere tabel waar al deze timestamps ook zijn opgeslagen, waardoor ik alleen de laatste twee hoef te selecteren om te weten wat de nieuwste zijn in tabel 'fondsen'.

Uit fondsen wil ik 10 records met het [u]grootste[/b] verschil tussen 1038320791 en 1038335848. Omdat deze timestamps altijd verschillend zijn, heten ze in de query $first en $second.

code:
1
2
3
4
SELECT * 
FROM fondsen 
WHERE $first>$second AND beursid!=5 AND beursid!=6 
ORDER BY $first-$second ASC


Ik zit dus met de ORDER BY te kloten want hier ligt de fout. Er wordt namelijk niet gesorteerd op het verschil, maar alleen op $first. Weet iemand de oplossing?

[ Voor 3% gewijzigd door Verwijderd op 27-11-2002 12:18 ]


  • LordLarry
  • Registratie: Juli 2001
  • Niet online

LordLarry

Aut disce aut discede

code:
1
2
3
4
SELECT *, ($first-$second) as verschil
FROM fondsen 
WHERE $first>$second AND beursid!=5 AND beursid!=6 
ORDER BY verschil ASC


Als ik me niet vergis

We adore chaos because we like to restore order - M.C. Escher


  • Foxl
  • Registratie: Juli 2002
  • Niet online
Verwijderd schreef op 27 november 2002 @ 12:17:

Tabel fondsen
- ID (int 12, primary key)
- REF (varchar 255)
- BEURSID (int 11)
- 1038320791 (varchar 10)
- 1038335848 (varchar 10)
Heten je Kolomen 1038320791 en 1038335848 ?? Of gewoon first en second? :?

Dan moeten lijkt mij die dollartjes voor first en second in je query pleite...

[ Voor 5% gewijzigd door Foxl op 27-11-2002 12:23 ]

I'm really easy to get along with, once you people learn to worship me...


Verwijderd

Topicstarter
LordLarry schreef op 27 november 2002 @ 12:19:
code:
1
2
3
4
SELECT *, ($first-$second) as verschil
FROM fondsen 
WHERE $first>$second AND beursid!=5 AND beursid!=6 
ORDER BY verschil ASC
Helaas niet :/ De resultaten zijn hetzelfde als met mijn query. Overigens krijg ik ook resultaten waar $first<$second is, dus negatieve getallen.
Heten je Kolomen 1038320791 en 1038335848 ?? Of gewoon first en second? Dan moeten lijkt mij die dollartjes voor first en second in je query pleite...
De kolommen heten 1038320791 en 1038335848, maar $first en $second hebben dus die waardes omdat de kolom namen variabel zijn (het zijn timestamps).

[ Voor 33% gewijzigd door Verwijderd op 27-11-2002 12:25 ]


  • LordLarry
  • Registratie: Juli 2001
  • Niet online

LordLarry

Aut disce aut discede

hehe, raar database design :)

mogen kolomnamen wel alleen uit getallen bestaan? Het lijkt er meer op alsof het gezien wordt als een berekening en niet als kolom naam

We adore chaos because we like to restore order - M.C. Escher


  • LordLarry
  • Registratie: Juli 2001
  • Niet online

LordLarry

Aut disce aut discede

Ik weet het wel zeker!

De waarde van kolom verschil is zeker ook altijd -15057?

We adore chaos because we like to restore order - M.C. Escher


Verwijderd

Topicstarter
Tja ik heb de database niet ontworpen. Anways we zitten op hetzelfde spoor. Als ik een echo $result[verschil] maak krijg ik achter elk resultaat de waarde '15057'.

Drie keer raden hoeveel 1038320791 min 1038335848 is |:(

  • LordLarry
  • Registratie: Juli 2001
  • Niet online

LordLarry

Aut disce aut discede

Ik zou de namen van de kolommen vervangen als je het kan. Anders blokhaken om de kolom naam. Dat helpt iig wel bij MS-SQL. [$first] of [1038335848]

We adore chaos because we like to restore order - M.C. Escher


  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06-2025

drm

f0pc0dert

:? :? :? Wie gebruikt er nou getallen voor kolomnamen :?

* drm nodigt de database-ontwerper uit voor bashing time @ GoT/14 :+
[/ot]

Je kunt de databasevelden quoten door `` backtick quotes te gebruiken:
code:
1
2
3
4
SELECT
   `vage-of-irritante-veld-naam`
FROM
    `misschien-wel-nog-debielere-tabelnaam`


hth :)

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz


  • thomaske
  • Registratie: Juni 2000
  • Laatst online: 14-07 14:28

thomaske

» » » » » »

drm schreef op 27 november 2002 @ 12:58:
:? :? :? Wie gebruikt er nou getallen voor kolomnamen :?
Nja, niet echt duidelijke naamgeving inderdaad. Het feit dat de tabel-definitie dynamisch wordt gewijzigd, druist helemaal tegen alle database-design-regels in!
Als het ook maar een klein beetje mogelijk is, zou ik het ontwerp drastisch veranderen!
[/ot]

Brusselmans: "Continuïteit bestaat niet, tenzij in zinloze vorm. Iets wat continu is, is obsessief, dus ziekelijk, dus oninteressant, dus zinloos."

Pagina: 1