Avatar billede kipolaks Nybegynder
17. december 2003 - 02:13 Der er 7 kommentarer og
1 løsning

højeste tal i flere tabeller ?

jeg har 3 tabeller som alle indeholder et felt der hedder mitTal..

hvordan får jeg det største tal ? (altså kun 1 tal!!)
Avatar billede kipolaks Nybegynder
17. december 2003 - 02:14 #1
hmmmm, jeg er vist lidt skod til at forklare... det største tal fra alle tabeller tilsammen..
Avatar billede ducks Nybegynder
17. december 2003 - 02:27 #2
Er det bare en almindelig SQL? For så tror jeg du kan bruge det her: http://www.w3schools.com/sql/func_max.asp

Og for at vælge dem alle, vil jeg gå ud fra at du kan bruge: MAX(*)
Avatar billede kipolaks Nybegynder
17. december 2003 - 02:51 #3
det er kun de tal der står i mitTal jeg vil have det største af..

hvis jeg skriver: SELECT MAX(*) FROM Tabel1, Tabel2;
får jeg fejl: mangler operator i udtrykket "MAX(*)"

hvis jeg skriver: SELECT MAX(mitTal) FROM Tabel1, Tabel2;
får jeg også fejl: mitTal kan referere til mere en én tabel..
Avatar billede arne_v Ekspert
17. december 2003 - 07:37 #4
Prøv med følgende hvus du er på MySQL 4.0.x:

(SELECT MAX(felt) FROM tabel1 ORDER BY felt DESC LIMIT 1)
UNION
(SELECT MAX(felt) FROM tabel2 ORDER BY felt DESC LIMIT 1)
UNION
(SELECT MAX(felt) FROM tabel3 ORDER BY felt DESC LIMIT 1)
ORDER BY felt LIMIT 1
Avatar billede ldanielsen Nybegynder
17. december 2003 - 09:08 #5
Dette virker og er testet på MSSQL 2000. Den returnerer en linie for hver tabel, men hvis du gemmer den som et View "vw_MaxTal", og derefter kører "SELECT TOP 1 tal from vw_MaxTal" så er den der:

(SELECT Max(mitTal) AS tal FROM tabel1)
UNION
(SELECT Max(mitTal) AS tal FROM tabel2)
UNION
(SELECT Max(mitTal) AS tal FROM tabel3)
ORDER BY tal DESC
Avatar billede ldanielsen Nybegynder
17. december 2003 - 09:12 #6
Næ, nu er den der i et hug :o)  :

SELECT  Max(tal) FROM
(SELECT Max(mitTal) AS tal FROM tabel1
UNION
SELECT Max(mitTal) AS tal FROM tabel2
UNION
SELECT Max(mitTal) AS tal FROM tabel3) As virtualTable
Avatar billede trer Nybegynder
17. december 2003 - 09:22 #7
Brug lige UNION ALL fremfor UNION

Når UNION bruges så får du en implicit sortering og distinct - det sparer du med en UNION ALL - dermed bedre performance.
Avatar billede kipolaks Nybegynder
17. december 2003 - 18:18 #8
NICE! det virker jo bare som det skal!! Takker :)
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