Avatar billede robin_and Nybegynder
08. september 2003 - 14:19 Der er 22 kommentarer og
1 løsning

access - kun en af samme firma

Jeg skal have hentet nogle firmaere fra en database...

nu skal det lige siges at jeg ikke har lavet det endnu... :)

Hvis min database så sådan ud.

id <-> firma    <-> EtEllerAndet
1      hest A/S      30
2      ting I/S      30
3      hest A/S      57

waw... fin database :)

Kan jeg så lave sådan et output (response.write) hvor den lister alle... men kun et firma med samme navn (den med det højeste tal)

For eksempel:

Hest A/S - 57
Ting I/S - 30


Ok, jeg ved at det er en meget underlig måde at spørge op... men jeg tænker ikke så meget lige nu.

håber at i forstår hvad jeg mener :)

\Robin_And
Avatar billede gustav-olsen Nybegynder
08. september 2003 - 14:23 #1
Du kan vel bare trække alle resultater hvor firma er lig med foo a/s ud og tælle dem og udskrive det?

Jeg ved ikke om man kan gøre det på den måde med ASP, jeg kan nemlig ikke andet end "response.write('hello')".. Men sådan ville jeg gøre med PHP.
Avatar billede gustav-olsen Nybegynder
08. september 2003 - 14:23 #2
Hov, det der var helt ude i skoven. Undskyld for spam, jeg misforstod det 100% :-)
Avatar billede overchord Nybegynder
08. september 2003 - 14:24 #3
ikke testet med proev med:

SELECT firma, TOP 1 Etellerandet FROM Mintabel
Avatar billede gustav-olsen Nybegynder
08. september 2003 - 14:25 #4
Du kan bare sortere det efter "Et eller andet kolonnen", i SQL ville det se ca sådan her ud: "SELECT * FROM tabel ORDER BY EtEllerAndet DESC"...
Avatar billede robin_and Nybegynder
08. september 2003 - 14:30 #5
qustav, ja.. men den skal jo sotere den ene fra... altså der må kun komme en hest (den med 57)
Avatar billede robin_and Nybegynder
08. september 2003 - 14:30 #6
overchord, hvad betyder TOP 1?
Avatar billede robin_and Nybegynder
08. september 2003 - 14:35 #7
overchord, den tager vel bare den første den finder... og det er jo ikke godt... den skal bare sotere de andre fra...

sorry hvis det lyder rodet det her.
Avatar billede socle Nybegynder
08. september 2003 - 14:36 #8
hvad med den her:

SELECT DISTINCT firma, etellerandet FROM tabel WHERE firma = (SELECT firma FROM tabel ORDER BY etellerandet DESC)

eller:

SELECT DISTINCT firma, etellerandet FROM tabel WHERE firma IN (SELECT firma FROM tabel ORDER BY etellerandet DESC)
Avatar billede robin_and Nybegynder
08. september 2003 - 14:47 #9
socle:
den første kommer med denne fejl:
Error Type:
Microsoft OLE DB Provider for ODBC Drivers (0x80004005)
[Microsoft][ODBC Microsoft Access Driver] At most one record can be returned by this subquery.


og den anden laver ingen fejl... men hest kommer 2 gange :(
Avatar billede overchord Nybegynder
08. september 2003 - 14:59 #10
ok sorry TOP 1 er ikke loesningen naar du vil have hoejeste tal... min fejl

SELECT firma, Max(Etellerandet) FROM Mintabel
virker istedet
Avatar billede robin_and Nybegynder
08. september 2003 - 15:03 #11
ok... nu er vi inde på noget...

men jeg vil ikke have højeste tal...
jeg vil have højeste tal for hvert firma.
Avatar billede socle Nybegynder
08. september 2003 - 15:15 #12
hvad med:

SELECT firma, etellerandet FROM tabel WHERE firma IN (SELECT DISTINCT firma FROM tabel WHERE firma IN (SELECT firma FROM tabel ORDER BY etellerandet DESC))
Avatar billede robin_and Nybegynder
08. september 2003 - 15:19 #13
socle, den laver der samme som sidst... den smider bare det hele igemmen :(
Avatar billede eagleeye Praktikant
08. september 2003 - 15:22 #14
Du gør sådan her hvis du vil hende en af hver og den med mex værdi i EtEllerAndet hvis det er en tal kolonne


SQL = "SELECT firma , Max(EtEllerAndet) AS maxEtEllerAndet
FROM tabelnavn GROUP BY firma;"
Avatar billede eagleeye Praktikant
08. september 2003 - 15:23 #15
hov uden return mit i SQL sætningen ;)

SQL = "SELECT firma , Max(EtEllerAndet) AS maxEtEllerAndet FROM tabelnavn GROUP BY firma;"
Avatar billede eagleeye Praktikant
08. september 2003 - 15:27 #16
Hvis du vil bruge navnet EtEllerAndet i din ASP kode kan du i stedet for maxEtEllerAndet bare skrive  EtEllerAndet  inde i SQL sætningen.
Avatar billede robin_and Nybegynder
08. september 2003 - 15:40 #17
eagleeye, det ser meget flot ud... men jeg kan ikke få det til at virke...

men jeg plejer heller ikke at bruge SQL = ting...

kan man ikke skrive den som en Set rs = objConn.Execute ("Select...
Avatar billede eagleeye Praktikant
08. september 2003 - 15:44 #18
Jo da det fordi jeg normalt skriver det sådan her:

SQL = "SELECT firma , Max(EtEllerAndet) AS EtEllerAndet FROM tabelnavn GROUP BY firma;"
Set rs = objConn.Execute (SQL)


men du kan bare skrive det direkte inde i Execute()..:

Set rs = objConn.Execute ("SELECT firma , Max(EtEllerAndet) AS EtEllerAndet
FROM tabelnavn GROUP BY firma;")

do while not rs.EOF
  Response.Write rs("firma") & " - " & rs("EtEllerAndet") & "<br>"
  rs.Movenext
loop
Avatar billede gustav-olsen Nybegynder
08. september 2003 - 16:58 #19
robin_and: jeg hedder altså gustav :-)
Avatar billede robin_and Nybegynder
08. september 2003 - 19:50 #20
sorry gustav... men det lignede et q =)

eagleeye... sorry.. men jeg kan ikke lige få serveres til at virke... men jeg tester det i morgen.
Avatar billede robin_and Nybegynder
09. september 2003 - 00:33 #21
waw.. det virker fint... men jeg vil entelig også have have mit id felt med ud... men det kan jeg ikke få til at virke...

den kommer med denne fejl: You tried to execute a query that does not inclure the specifed expresion 'id' as part of an aggregate function..

hvad kan jeg gøre ved det?
Avatar billede robin_and Nybegynder
09. september 2003 - 12:25 #22
kan i ikke finde ud af det?

jeg kan i hvert fald ikke :-)
Avatar billede robin_and Nybegynder
09. september 2003 - 15:34 #23
okay, jeg lavede det på en anden måde... men der er point til eagleeye :)

tak for hjelpen alle.
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
Kurser inden for grundlæggende programmering

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