Avatar billede radiohead Nybegynder
19. december 2006 - 12:08 Der er 45 kommentarer og
1 løsning

SELECT COUNT fra 2 tabeller

Ja, spørgsmålet siger det meste

Hvordan gør jeg?


Jeg har prøvet med følgende:

SELECT COUNT(*) FROM tabel1, tabel2 WHERE id=" & noget
Response.Write rs("test")


Her får jeg fejlen:

Hvis jeg bruger følgende, siger den "Det angivne felt "test" kan referere til mere end én tabel, der er vist i FROM-delsætningen i sætningen SQL.
Avatar billede jokkejensen Novice
19. december 2006 - 13:15 #1
SELECT COUNT(*) as antal


Response.Write(rs("antal"));
Avatar billede radiohead Nybegynder
19. december 2006 - 13:17 #2
øhm - Tror stadig den siger:

Det angivne felt "id" kan referere til mere end én tabel, der er vist i FROM-delsætningen i sætningen SQL.

Måske har jeg ikke forstået dig rigtigt. hmm
Avatar billede kalp Novice
19. december 2006 - 14:37 #3
SELECT COUNT(tabel1.*) as tabelet, COUNT(tabel2.*) as tabelto FROM tabel1, tabel2 WHERE id=" & noget

Response.Write rs("tabelet") + rs("tabelto")


hvis ikke du kan gøre sådan her tabel1.* så prøv at skrive tabel1.test
og det samme med tabel2.test
Avatar billede radiohead Nybegynder
19. december 2006 - 15:16 #4
kigger lige på det lidt senere.

Men tak for svar
Avatar billede kalp Novice
19. december 2006 - 17:54 #5
SELECT (Select COUNT(*) From tabelet Where id= " & noget & ") as antalet
(Select COUNT(*) From tabel Where id= " & noget & ") as antalto

sådan kan du også prøve
Avatar billede radiohead Nybegynder
19. december 2006 - 18:50 #6
Stadig:

"Det angivne felt "id" kan referere til mere end én tabel, der er vist i FROM-delsætningen i sætningen SQL."
Avatar billede kalp Novice
19. december 2006 - 18:51 #7
SELECT (Select COUNT(*) From tabelet Where tabelet.id= " & noget & ") as antalet
(Select COUNT(*) From tabel Where tabelto.id= " & noget & ") as antalto
Avatar billede kalp Novice
19. december 2006 - 18:51 #8
sorry

SELECT (Select COUNT(*) From tabelet Where tabelet.id= " & noget & ") as antalet
(Select COUNT(*) From tabelto Where tabelto.id= " & noget & ") as antalto
Avatar billede radiohead Nybegynder
19. december 2006 - 18:52 #9
prøver
Avatar billede radiohead Nybegynder
19. december 2006 - 18:54 #10
for øvrigt... Hvis jeg bruger den løsning du kom med  17:54:05 siger den at der er brugt et reserveret ord.. hmm :)

Kigger lige på den sidste
Avatar billede kalp Novice
19. december 2006 - 18:55 #11
hvis ikke det virker så kan du ikke bruge COUNT(*) sådan... du tæller jo alle kolonner på den måde... tror mere på dette ville virke

SELECT (Select COUNT(tabelet.id) From tabelet Where tabelet.id = " & noget & ") as antalet
(Select COUNT(tabelto.id) From tabelto Where tabelto.id= " & noget & ") as antalto
Avatar billede radiohead Nybegynder
19. december 2006 - 18:57 #12
Den siger det samme i 18:51:37

"SELECT-sætningen indeholder et reserveret ord eller argument, der er stavet forkert eller mangler, eller tegnsætningen er ikke korrekt."
Avatar billede radiohead Nybegynder
19. december 2006 - 18:58 #13
hmm ok

Det kan være jeg er nødt til at fyre 2 forskellige sql'er af så også lægge de 2 resultater sammen bagefter
Avatar billede kalp Novice
19. december 2006 - 18:59 #14
SELECT COUNT(tabel1.*) as tabelet, COUNT(tabel2.*) as tabelto FROM tabel1, tabel2 WHERE tabel1.id=" & noget & " AND tabel2.id = " & noget & "


Response.Write rs("tabelet") + rs("tabelto")


ellers skal vi nok vide mere om hvilke kolonner der findes i de 2 tabeller... og hvad det er som du helt præcis vil tælle;)
Avatar billede radiohead Nybegynder
19. december 2006 - 19:08 #15
Lad os bare sige at det er en række personer som er ansat i et firma.
(lad os så sige at den ene tabel indeholder en række skorstensfejere og den anden en række kontordamer)

Disse ansatte har hver et ejer_id som refererer til en overordnet/chef

Så vil jeg gerne have det sådan, at når man klikker sig ind på den overordnede/chefen, skal der stå hvor mange han har ansat under sig(altså hvor mange ansatte der har hans ejer_ID) (både fra skorstensfejer-tabellen og kontordamerne)


Håber det gav mening
Avatar billede radiohead Nybegynder
19. december 2006 - 19:10 #16
tabel1 -> skorstensfejere(id, ejer_id, navn)
tabel2 -> kontordamer(id, ejer_id, navn)

tabel3 -> overordnet(id, navn, ejer_id)


Det ser ud som noget i den stil
Avatar billede radiohead Nybegynder
19. december 2006 - 19:14 #17
Men du behøver ikke granske mere i det - Jeg må nøjes med at fyre 2 SQL'er af, også lægge de 2 tal sammen som jeg får derfra... selvom det jo nok trækker lidt flere ressourcer.

Du må gerne lægge et svar ;)
Avatar billede kalp Novice
19. december 2006 - 19:23 #18
SELECT COUNT(tabel1.ejer_Id) as antalet, COUNT(tabel2.ejer_Id) as antalto FROM tabel3,tabel1,tabel2 WHERE tabel1.ejer_id = tabel3.ejer_id AND tabel2.ejer_id = tabel3.ejer_id AND tabel3.ejer_id = " & noget & "


sidste forslag=)
Avatar billede radiohead Nybegynder
19. december 2006 - 19:30 #19
bum bum... nu siger den ikke længere nogle fejl, men den tæller kun 1

Jeg må se på det.

Tak for hjælpen kalp!
Avatar billede kalp Novice
19. december 2006 - 19:32 #20
okay.. tror den skal sættes sammen sådan ca.

men hvad mener du ellers med at den kun tæller en?

du skal huske at udskrive antalet og antalto .. og lægge dem sammen selvfølgelig
Avatar billede radiohead Nybegynder
19. december 2006 - 19:34 #21
Ja, glemte at udskrive dem begge :) hehe

Men Sjovt nok udskriver den et sted "169" hvor der kun er omkring 20


Det må jeg lige se på
Avatar billede kalp Novice
19. december 2006 - 19:36 #22
mon ikke der er 16 i den ene... og 9 i den anden?

den læser det vel som strings så

16 + 9 er jo

169

måske er der 25 i alt;)
Avatar billede kalp Novice
19. december 2006 - 19:37 #23
cint(antalet)+ cint(antalto)
Avatar billede radiohead Nybegynder
19. december 2006 - 19:42 #24
Stadig det samme, men tænk ikke mere på det.

Nu kan vi vist ikke vride mere ud af de 30 point :)
Avatar billede kalp Novice
19. december 2006 - 19:44 #25
fair nok=)
Avatar billede radiohead Nybegynder
19. december 2006 - 19:46 #26
Hmm.-.. tror jeg har løst mysteriet... Dog er jeg bare blevet mere forvirret.

Der er 13 af hver...

13 * 13 = 169

Men hvorfor dælen ganger dem den?
Avatar billede kalp Novice
19. december 2006 - 19:47 #27
prøv at tilføje en enkelt række mere og som om resultatet bliver

13*14 = 182
Avatar billede radiohead Nybegynder
19. december 2006 - 19:57 #28
tilføjede 1 mere i hver tabel

resultat = 196

du får lidt point oveni hatten
Avatar billede kalp Novice
19. december 2006 - 19:59 #29
bare så jeg er helt med...
gør den det kun ved en post? eller alle?
Avatar billede radiohead Nybegynder
19. december 2006 - 20:00 #30
antalet = 196
og
antalto = 196

Den ganger begge 2 med sig selv
Avatar billede radiohead Nybegynder
19. december 2006 - 20:00 #31
hvis det var det du spurgte om
Avatar billede radiohead Nybegynder
19. december 2006 - 20:01 #32
Avatar billede kalp Novice
19. december 2006 - 20:03 #33
nej tænkte mere hvis vi har 2 forskellige ejer_id .. f.eks 1 og 2

viser 1 så det korrekte antal
og 2 det forkerte.. altså 196?
Avatar billede radiohead Nybegynder
19. december 2006 - 20:03 #34
SELECT COUNT(data_tbl1.ejer_Id) as antalet, COUNT(data_tbl2.ejer_Id) as antalto FROM data_tbl1,data_tbl1 WHERE data_tbl1.ejer_Id =" & Session("noget") & " AND data_tbl2.ejer_Id =" & Session("noget")
Avatar billede kalp Novice
19. december 2006 - 20:03 #35
radiohead >> jeg behøver ikke flere point=)
Avatar billede radiohead Nybegynder
19. december 2006 - 20:03 #36
nej.. alle ejer id'erne er "27"
Avatar billede radiohead Nybegynder
19. december 2006 - 20:04 #37
jow du gør
Avatar billede kalp Novice
19. december 2006 - 20:06 #38
SELECT COUNT(data_tbl1.ejer_Id) as antalet, COUNT(data_tbl2.ejer_Id) as antalto FROM data_tbl1,data_tbl2 WHERE data_tbl1.ejer_Id =" & Session("noget") & " AND data_tbl2.ejer_Id =" & Session("noget")
Avatar billede kalp Novice
19. december 2006 - 20:07 #39
vil første lige se hvad der sker hvis vi retter hvad du selecter fra.. du har skrevet 2 gange data_tbl1,data_tbl1
Avatar billede radiohead Nybegynder
19. december 2006 - 20:10 #40
Hov.. det må være en fejl der har sneget sig ind da jeg skrev den her

Den står rigtig nok i koden

Sorry... Jeg gør det jo ikke lettere for dig, når jeg laver fejl.. hehe :D
Avatar billede kalp Novice
19. december 2006 - 20:13 #41
SELECT  COUNT(data_tbl1.ejer_Id) as antalet FROM data_tbl1
  WHERE data_tbl1.ejer_Id IN (SELECT COUNT(data_tbl2.ejer_Id) as antalto FROM data_tbl2
      WHERE data_tbl2.ejer_Id =" & Session("noget") & " ) AND data_tbl1.ejer_Id =" & Session("noget")


bare for sjov... lige før vi kigger videre på den anden... den er lidt mystisk den her, men hvis den virker så er det vel fint nok
Avatar billede radiohead Nybegynder
19. december 2006 - 20:20 #42
kan ikke lige få den udskrevet

Elementet kan ikke findes i den samling, der svarer til det anmodede navn eller ordenstal.

Skal jeg ikke bare udskrive med
=rs("antalet") ?
Avatar billede radiohead Nybegynder
19. december 2006 - 20:26 #43
Vi glemmer det bare kalp - Jeg kan fixe det på en anden måde, så vi slipper for besværet.

Husk og svar i det andet spørgsmål, så du kan få lidt mere for ulejligheden :)
Avatar billede kalp Novice
19. december 2006 - 20:27 #44
det burde være sådan ja..

hvis det ikke haster vil jeg kunne give dig en løsning i morgen tidligt (der har jeg min SQL bog)
Avatar billede kalp Novice
19. december 2006 - 20:27 #45
jeg ligger et svar i morgen sammen med løsningen;o)
Avatar billede radiohead Nybegynder
19. december 2006 - 20:28 #46
Det er helt ok :)
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