Avatar billede orca Nybegynder
19. juni 2001 - 02:50 Der er 4 kommentarer og
1 løsning

Count af flere tabeller

Jeg har en access database. Inde i den har jeg adskillige tables, alle med et felt som hedder Id og som er unikt. Er der en let måde hvor jeg hurtigt kan tælle hvor mange records der i alt findes - alle tabeller sammenlagt?

Mvh Mark

www.fotx.net/orca
Avatar billede burningice Nybegynder
19. juni 2001 - 05:31 #1
uhm, \"Select count(id) as Antal from tabel,tabel1,tabel2\" ??

ellers skal du måske have fat i noget inner join som ikke er min stærke side :(
Avatar billede erikjacobsen Ekspert
19. juni 2001 - 07:41 #2
Ja, det er nemt nok. Du laver lige så mange SQL-sætninger, som du har
tabeller. Nemt, elegant, og hurtigt - i hvert fald så hurtigt du kan gøre det :)
Avatar billede icedox Nybegynder
19. juni 2001 - 08:00 #3
Ja til erikjacobsen, og :
Sql =\"Select count(id) as Antal from tabel\"
conn.execute (sql)

2 linier til hver tabel.  Antal1 from tabel1
                          Antal2 from tabel2

Får at undgå dette, kan du altid lave en tabel der kaldes \"tæller\", så hver gang du insætter i de andre tabeller, bruger du en ekstra SQL for at
Opdatere tallet i \"tæller\" eller counter.
Avatar billede orca Nybegynder
19. juni 2001 - 10:23 #4
det jeg bruger indtil videre er noget lignende dette:

dim totalcount
set rs = conn.execute(\"Select Count(\"id\") as recordcount from tabel1\")
totalcount=totalcount+rs(\"recordcount\")
set rs = conn.execute(\"Select Count(\"id\") as recordcount from tabel2\")
totalcount=totalcount+rs(\"recordcount\")

Er det ikke noget lignende det samme i foreslår? Er der ikke en mere smart måde at klare det på?
Avatar billede jakobandersen Nybegynder
19. juni 2001 - 15:08 #5
Jeg havde lige en ledig stund og lavede disse to funktioner som tager alle \"menneskeskabte\" tabeller fra en database og tæller ID:

<%
Function  ListTables
Dim objConn, objRS, Antal
Antal = 0
Set objConn = Server.CreateObject(\"ADODB.Connection\")
objConn.ConnectionString = \"xxxxxxxxxxxxxxxxxxxxxxxxxxx\"
objConn.Open strConn
Set objRS = objConn.OpenSchema(20)
Do while Not objRS.EOF
If objRS(\"TABLE_TYPE\") = \"TABLE\" Then
Antal = Antal + GetCount(objRS(\"TABLE_NAME\"),objConn)
End if
objRS.MoveNext
Loop
ListTables = Antal
objRS.Close
objConn.Close
Set objRS = Nothing
Set objConn = Nothing
End Function


Function GetCount(tbl,connection)
Dim  objRS, sql
Set objRS = connection.Execute(\"SELECT Count(Id) FROM [\" & tbl & \"]\")
GetCount = objRS(0)
objRS.Close
Set objRS = Nothing
End function

Response.write ListTables
%>
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