Avatar billede justdoit Nybegynder
28. august 2002 - 13:22 Der er 26 kommentarer og
1 løsning

Hvordan samler jeg id'er ??

Jeg har en søge funktion hvor jeg gerne vil samle de titler der er ens, og i stedet tælle hvor mange der er sådan:

fx. computer:
    computer:

skulle gerne se sådan ud:

    computer (2)

Hvordan gør jeg det??

Her er koderne:

strSQL = "SELECT Catalogs.catalogName as UdskrivNavn , Catalogs.CatalogName, Products.ProductID, Products.ProductName, Products.ProductDesc, Products.CatalogID FROM Products, catalogs where Catalogs.catalogNameID = Products.CatalogID"
    strSQL = strSQL & " AND (products.productName LIKE '%" & strKeyword & "%')"
    strSQL = strSQL & " OR (products.productDesc LIKE '%" & strKeyword & "%')"
    RS.open strSQL, con


    If Not (rs.BOF Or rs.EOF) Then
        Response.Write "<p><div align=""center"">Der blev søgt på ordet<b> " & strKeyword & " </b> som gav følgende resultat:</div></p>"
        Response.Write "<table border=0 width=430>"
        Response.Write "<tr><td><b>Kategori</b></td></tr>"
            Do While Not rs.EOF
            Response.Write "<tr><td>" & rs("UdskrivNavn") & "</td>"
            Response.Write "<td>" & rs("CatalogID") & "</td></tr>"


Er ikke det noget med GROUP BY eller COUNT ?
Avatar billede moses Praktikant
28. august 2002 - 13:27 #1
SELECT Tabel1.ID, Count(Tabel1.ID) AS Antal
FROM Tabel1
GROUP BY Tabel1.ID;
Avatar billede justdoit Nybegynder
28. august 2002 - 17:33 #2
Vil du ikke prøve at sætte det ind i mit eksempel, da jeg ikke er helt klar over hvad du mener??

vh

Justdoit :)
Avatar billede susanne_larsen Nybegynder
28. august 2002 - 17:34 #3
med på en lytter
Avatar billede justdoit Nybegynder
28. august 2002 - 20:58 #4
lukker og prøver i anden kategori!
Avatar billede moses Praktikant
29. august 2002 - 07:51 #5
Hvad er meningen ?!?!
Jeg har svaret (korrekt endda) og du har et modspørgsmål.
Var det ikke en ide måske at runde den af ??
Avatar billede justdoit Nybegynder
29. august 2002 - 10:12 #6
Jeg takker for forsøget, men du får ingen point når jeg ikke forstår hvad det er du mener. Men hvis du vil sætte det ind i koderne for mig, så vil jeg med glæde give dig dine point ..

vh

Justdoit
Avatar billede moses Praktikant
29. august 2002 - 10:32 #7
Måske en anden gang. Det er for let tjente point !

Det er meget umiddelbart, at benytte min løsning på din egen SQL sætning, så kom du bare igang selv ;-)
Avatar billede justdoit Nybegynder
29. august 2002 - 11:01 #8
Jeg har prøvet og prøvet, men jeg kan ikke få det til at virke, så hvis du alligevel vil prøve er du mere en velkommen..
Avatar billede moses Praktikant
29. august 2002 - 11:08 #9
2 ting:

1. Du kan ikke BÅDE visse antallet (count) OG vise hver enkelt record i én og samme query. Det skal der 2 queries til.

2. Hvilken kolonne er det du vil have vist antallet af?
Avatar billede justdoit Nybegynder
29. august 2002 - 11:26 #10
Det er products.catalogID!
Avatar billede moses Praktikant
29. august 2002 - 11:32 #11
SELECT products.catalogID, Count(products.catalogID) AS Antal
FROM products GROUP BY products.catalogID;

Giver dig :

ID4711, 10
ID1313, 2
ID4332, 43

OSV.
Avatar billede justdoit Nybegynder
29. august 2002 - 11:40 #12
Ok, men kan du så se hvad jeg gør forkert her?

strSQL = "SELECT Catalogs.catalogName as UdskrivNavn, Products.ProductID, products.productDesc, Products.ProductName, Count(products.catalogID) AS Antal FROM Products, catalogs GROUP BY products.catalogID where Catalogs.catalogNameID = Products.CatalogID"

Jeg får fejlen: (når jeg fx. søger på bærbar)

Der er en syntaksfejl, fordi der mangler en operator. i forespørgselsudtrykket "products.catalogID where Catalogs.catalogNameID = Products.CatalogID AND (products.productName LIKE '%bærbar%') OR (products.productDesc LIKE '%bærbar%')".
Avatar billede moses Praktikant
29. august 2002 - 11:54 #13
For det første kan jeg ikke se nogen link imellem tabellerne products og catalog.
Og så hedder det vel LIKE '*bærbar*'
Avatar billede justdoit Nybegynder
29. august 2002 - 12:08 #14
Er det fordi der skal være relationer mellem de to tabeller, eller hvad er det du memer??

Jeg vil gerne sende det som en zipfil til dig hvis du gider at kigger på det?
Avatar billede moses Praktikant
29. august 2002 - 12:25 #15
Nej - jeg ved jo ikke, hvordan relationerne er imellem dine data. Jeg kan også se, at du bruger WHERE .... istedet for JOIN

.... FROM catalogs INNER JOIN Products ON Catalogs.catalogNameID = Products.CatalogID

Og så ikke noget med WHERE...

Jeg ved ikke, om det kan gøre noget? Men du kan da vel ikke bruge %-tegnene. Det skal være *-tegn !!
Avatar billede justdoit Nybegynder
29. august 2002 - 12:42 #16
Nu har jeg fået det lavet så det ikke giver fejl, men når jeg så vil ufskrive rs("Antal") får jeg fejlen:

Der er en syntaksfejl i JOIN-handlingen.

Sådan ser det ud lige nu:

strSQL = "SELECT Catalogs.catalogName as UdskrivNavn, Products.ProductID, products.productDesc, Products.ProductName, Count(products.catalogID) AS Antal FROM catalogs, products INNER JOIN Products ON Catalogs.catalogNameID = Products.CatalogID"
Avatar billede moses Praktikant
29. august 2002 - 13:01 #17
Ja - du mangler GROUP BY ....
Avatar billede justdoit Nybegynder
29. august 2002 - 16:51 #18
Hvor skal jeg sætte GROUP BY??

strSQL = "SELECT Catalogs.catalogName as UdskrivNavn, Products.ProductID, products.productDesc, Products.ProductName, Count(products.catalogID) AS Antal FROM products, catalogs INNER JOIN Products ON Catalogs.catalogNameID = Products.CatalogID"
Avatar billede moses Praktikant
30. august 2002 - 08:13 #19
Jeg regner med, at du skal bruge informationerne i kolonnerne: catalogName,ProductID, ProductDesc, ProductName .....
Derfor skal du lave en query til at hente alle disse informationer:

strSQL_1 = "SELECT Catalogs.catalogName as UdskrivNavn, Products.ProductID, products.productDesc, Products.ProductName, products.catalogID FROM products, catalogs INNER JOIN Products ON Catalogs.catalogNameID = Products.CatalogID"

Dernæst skal du have en query, der giver dig antallet af ens CatalogID:

strSQL_2 = "SELECT products.catalogID as CatID, Count(products.catalogID) as Antal FROM products GROUP BY products.catalogID"

Nu kan du så lave vælge at lave en query, hvor du samler disse informationer. Problemet var før, at du ikke kunne samle en masse records og tælle dem samtidig med at du viste samtlige records adskildt.
Læg lige mærke til at "query_2" er den query, som du har lavwet med strSQL2 ovenfor !!

strSQL_3 = "SELECT Catalogs.catalogName as UdskrivNavn, Products.ProductID, products.productDesc, Products.ProductName, products.catalogID, query_2.Antal FROM query_2 INNER JOIN (products, catalogs INNER JOIN Products ON Catalogs.catalogNameID = Products.CatalogID) ON query_2.CatID = products.catalogID"
Avatar billede moses Praktikant
30. august 2002 - 08:14 #20
og, hvis jeg skal hjælpe dig mere, så må det vist være fair nok, hvis jeg forlanger 60 point.
Avatar billede justdoit Nybegynder
30. august 2002 - 11:01 #21
Hej, det ser ud til at jeg gerne vil have noget mere hjælp, og jeg har 55 point du må få hvis du løser problemet, (du skal nok få nogle alligevel, da du allerede har gjort det godt:))

Jeg har kigget en del på det du har skrevet, man kan ikke helt finde ud af hvad det er du mener.

Vil du ikke give mig en mailadresse, så sender jeg de filer du har brug for, for at løse mit problem, så får du også noget af databasen med! Jeg tror det er lettere??
Avatar billede justdoit Nybegynder
30. august 2002 - 17:34 #22
Så nu har jeg svarret på en andet spørgsmål og du må gerne få 60 point for at lave det, hvad siger du ??
Avatar billede moses Praktikant
02. september 2002 - 09:12 #23
Du klikker bare på mit navn ude i venstr side og vælger "Bruger Info", så kommer bl.a. e-mail adressen frem i mini siden.
Send den DB, så ser jeg lige på det.
Avatar billede justdoit Nybegynder
02. september 2002 - 16:47 #24
Hej, jeg har sendt en mail til dig!!
Avatar billede moses Praktikant
02. september 2002 - 19:55 #25
Hej, jeg har fået en mail ;-)

Det er svært bare sådan lige at stige ind i et program, men det må være i soeg_db.asp du mener.
Der henter du dine detailinformationer, men hvor har du den anden query, hvor du henter optællingen ??

Det er garanteret nemmere, at du selv laver arbejdet. Umiddelbart ser det ud, som om du først skal lave den query, som jeg herover har kaldt strSQL_2. Og dernæst bygge den ind i det du har nu, så det kommer til at ligne strSQL_3.

Jeg har sendt databasen tilbage med de 2 queries lavet, som access queries.
Du kan jo så se, om det nu også giver det resultat, som du egentlig er interesseret i.
Det skulle være en smal sag at bruge Cut&Paste til at klistre det ind i dine ASP filer.
Avatar billede justdoit Nybegynder
02. september 2002 - 20:29 #26
Jeg har ikke lavet den query hvor jeg henter optællingen endnu, fordi jeg er meget i tvivl om hvor jeg skal skrive det!!

Vil du ikke prøve at Cut&Paste det for mig, og sætte det ind i soeg_db??

please!
Avatar billede moses Praktikant
02. september 2002 - 20:36 #27
Jeg er ikke god til ASP og det er jo altså ikke nok bare at lave selve SQL sætningen.
Hvis du skulle være i tvivl, så er selve SQL sætningen til en access query til at få fat i ved at åbne query'en i design mode og vælge SQL visning.
Skulle du være helt på bar bund, så kan du jo bare nøjes med at henvise til QUERY3 i din ASP kode. det giver lige præcist det samme, som at lave SQL sætningen selv.
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
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser

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