Avatar billede sp Nybegynder
24. april 2003 - 21:19 Der er 55 kommentarer og
1 løsning

2 gange SELECT COUNT(*) til en SELECT COUNT(*)

Kan man slå de 2 sætninger sammen? Jeg skal have det samme resultat, altså 2 tal

SELECT COUNT(*) AS Antalfo FROM " & username & " WHERE Followed > '" & fdays & "' AND Trash=0
SELECT COUNT(*) AS Antalark FROM " & username & " WHERE Followed < '" & fdays & "' AND Trash=0
Avatar billede nutten Nybegynder
24. april 2003 - 21:27 #1
SELECT COUNT(*) AS Antalfo FROM " & username & " WHERE Followed > '" & fdays & "' AND Trash=0
UNION
SELECT COUNT(*) AS Antalark FROM " & username & " WHERE Followed < '" & fdays & "' AND Trash=0

Den giver antallet fra begge queries i hver sin række???
Avatar billede sp Nybegynder
24. april 2003 - 21:33 #2
Jeg skal have begge tal ud fra én sætning. Jeg har skrevet de rigtige alias, alligevel får jeg denne fejl:

Error Type:
ADODB.Recordset (0x800A0CC1)
Item cannot be found in the collection corresponding to the requested name or ordinal.
/debat/top.asp, line 53
Avatar billede terry Ekspert
24. april 2003 - 21:33 #3
SELECT Count(*) AS cnt1, (Select count(*) from SomeTable) AS cnt2
FROM someTable AS p1;
Avatar billede terry Ekspert
24. april 2003 - 21:35 #4
this is the syntax in Access, I will let you put your variables in yourself :o)
Avatar billede nutten Nybegynder
24. april 2003 - 21:36 #5
Det er en sql-sætning den første UNION den anden.. Det virker fint.

Den vil returnere 2 rækker en for hvert tal den har fundet? Elelrs forstår jeg ikke.?
Avatar billede sp Nybegynder
24. april 2003 - 21:38 #6
Hvor er dette henne, det ser jeg ingen steder:
WHERE Followed < '" & fdays & "' AND Trash=0
WHERE Followed < '" & fdays & "' AND Trash=0
Avatar billede terry Ekspert
24. april 2003 - 21:39 #7
sp>If you wanthelp then dont reject my answer!
this is the syntax in Access, I will let you put your variables in yourself :o)
Avatar billede sp Nybegynder
24. april 2003 - 21:43 #8
OK sorry. Du skriver bare noget og trykker på "Svar" så giver jeg dig point, hvis jeg kan få det til at virke. Også til nutten. Men jeg kan stadig ikke få det til at virke:

Set rsClients = Conn.Execute ("SELECT COUNT(*) AS Antalfo FROM " & username & " WHERE Followed > '" & fdays & "' AND Trash=0 UNION SELECT COUNT(*) AS Antalark FROM " & username & " WHERE Followed < '" & fdays & "' AND Trash=0;")

Reponse.Write rsClients("antalark")
Response.Write rsClients("antalfo")
Avatar billede nutten Nybegynder
24. april 2003 - 21:45 #9
Det eneste du skal gøre er at skrive UNION efter trash=0 og før den nye SELECT, det burde din dbms understøtte?? Kender ikke det store til access..

Bottomline! Det er ÉN sætning og du får begge resultater..
Avatar billede terry Ekspert
24. april 2003 - 21:46 #10
The UNION will give you TWO records. My answer will (when you put your variables in) give you one record with two columns!
Avatar billede nutten Nybegynder
24. april 2003 - 21:47 #11
terry >> korrekt Terry :o) det er det samme resultat på 2 måder, så må han jo vælge selv :)
Avatar billede terry Ekspert
24. april 2003 - 21:49 #12
First try this, get this working first and then the "complex" after.

Dim sSQL
sSQL = "SELECT COUNT(*) AS Antalfo FROM " & username
Set rsClients = Conn.Execute (sSQL)
Response.Write rsClients("antalfo")
Avatar billede sp Nybegynder
24. april 2003 - 21:49 #13
Så forstår jeg ikke hvorfor det ikke virker
Avatar billede sp Nybegynder
24. april 2003 - 21:50 #14
Det virker fint. Kgi øverst i spørgsmålet. Der er ingen fejl eller problemer med det.
Avatar billede sp Nybegynder
24. april 2003 - 21:51 #15
jeg har prøvet med UNION og den giver en fejl
Avatar billede nutten Nybegynder
24. april 2003 - 21:52 #16
Det kan da godt være Access ikke understøtter det...ved ikke.

Jeg har lige kørt det samme, du skal DOG være opmærksom på de 2 tabeller skal have samme antal kolonner forgot Sorry! :o) Derfor virker terry's svar nok som det rigtige..
Avatar billede sp Nybegynder
24. april 2003 - 21:52 #17
Jeg vil gerne give jer point. Det ser rigtigt ud, men jeg kan ikke få det til at virke
Avatar billede sp Nybegynder
24. april 2003 - 21:53 #18
Det er samme tabel
Avatar billede nutten Nybegynder
24. april 2003 - 21:54 #19
Du behøver ikke smide point efter os, hvis det ikke virker :)
Hvad siger den af fejl?
Avatar billede sp Nybegynder
24. april 2003 - 21:55 #20
Error Type:
ADODB.Recordset (0x800A0CC1)
Item cannot be found in the collection corresponding to the requested name or ordinal.
/debat/top.asp, line 53
Set rsClients = Conn.Execute ("SELECT COUNT(*) AS Antalfo FROM " & username & " WHERE Followed > '" & fdays & "' AND Trash=0 UNION SELECT COUNT(*) AS Antalark FROM " & username & " WHERE Followed < '" & fdays & "' AND Trash=0;")

Reponse.Write rsClients("antalark")
Response.Write rsClients("antalfo")
Avatar billede nutten Nybegynder
24. april 2003 - 21:58 #21
Mystisk.. det virker fint hos mig, det er bare ikke Access..

Kan du ikke skrive den linie, fejlen refererer til altså linie 53?
Avatar billede terry Ekspert
24. april 2003 - 21:58 #22
Its getting all the paramaters inside "" which is the problem, I cant test it here so its just a case of trial and error :o)
Avatar billede sp Nybegynder
24. april 2003 - 21:59 #23
Er det rigtigt?
SELECT Count(*) AS cnt1, (Select count(*) from SomeTable WHERE Followed < '" & fdays & "' AND Trash=0) AS cnt2
FROM someTable Followed < '" & fdays & "' AND Trash=0 AS p1;
Avatar billede terry Ekspert
24. april 2003 - 22:02 #24
sSQL = "SELECT Count(*) AS Antalfo (Select count(*) from " & username & "WHERE Followed < '" & fdays
sSQL = sSQL & "' AND Trash=0) AS Antalark FROM " & username & " AS p1 WHERE Followed > '" & fdays & "' AND Trash=0 "
Avatar billede sp Nybegynder
24. april 2003 - 22:03 #25
Error Type:
ADODB.Recordset (0x800A0CC1)
Item cannot be found in the collection corresponding to the requested name or ordinal.
/debat/top.asp, line 26


Set rsClients = Conn.Execute ("SELECT COUNT(*) AS Antalfo FROM " & username & " WHERE Followed > '" & fdays & "' AND Trash=0 UNION SELECT COUNT(*) AS Antalark FROM " & username & " WHERE Followed < '" & fdays & "' AND Trash=0;")
Response.Write rsClients("antalark")
Response.Write rsClients("antalfo")
Avatar billede terry Ekspert
24. april 2003 - 22:04 #26
then
Set rsClients = Conn.Execute (sSQL)
Avatar billede sp Nybegynder
24. april 2003 - 22:04 #27
terry >> den er ikke bedre end den der startede mit spm.
Avatar billede terry Ekspert
24. april 2003 - 22:07 #28
Try using a variable for the sql, then JUST before you conn.execute try writing the variable to the screen so that you can see what yoú have in the string
Avatar billede nutten Nybegynder
24. april 2003 - 22:08 #29
Det virker 100 hos mig uanset hvad jeg gør ?

Bortset fra det er det jo mystisk det virker som det står i spørgsmålet, hvis man kun tilføjer UNION og det så ikke virker..

Det ser jo ud som om den ikke kan finde den table eller de attributter du leder efter?
Avatar billede terry Ekspert
24. april 2003 - 22:10 #30
what isnt better? The original CAN NOT work, this CAN, its just a case of getting the " and ' in the correct place.

Try it where you replace the variables with known values! Then when its working replace the values with variables!
Avatar billede sp Nybegynder
24. april 2003 - 22:10 #31
Error Type:
ADODB.Recordset (0x800A0CC1)
Item cannot be found in the collection corresponding to the requested name or ordinal.
/debat/top.asp, line 26

SQL="SELECT COUNT(*) AS Antalfo FROM " & username & " WHERE Followed > '" & fdays & "' AND Trash=0 UNION SELECT COUNT(*) AS Antalark FROM " & username & " WHERE Followed < '" & fdays & "' AND Trash=0;"

Set rsClients = Conn.Execute (SQL)
Response.Write rsClients("antalark")
Response.Write rsClients("antalfo")
Avatar billede terry Ekspert
24. april 2003 - 22:11 #32
Keep at it, the syntax IS correct!
I'm stopping for the night :o)
Avatar billede sp Nybegynder
24. april 2003 - 22:12 #33
Det er jo alias???
Avatar billede sp Nybegynder
24. april 2003 - 22:15 #34
Jeg har prøvet dett, men får samme fejl:

Error Type:
ADODB.Recordset (0x800A0CC1)
Item cannot be found in the collection corresponding to the requested name or ordinal.
/debat/top.asp, line 27


Dim t1, t2
SQL="SELECT COUNT(*) AS t1 FROM " & username & " WHERE Followed > '" & fdays & "' AND Trash=0 UNION SELECT COUNT(*) AS t2 FROM " & username & " WHERE Followed < '" & fdays & "' AND Trash=0;"

Set rsClients = Conn.Execute (SQL)
Response.Write rsClients("t1")
Response.Write rsClients("t2")
Avatar billede sp Nybegynder
24. april 2003 - 22:17 #35
Det kan være at jeg bare skal vende tilbage til det gamle, det virkede jo.
Avatar billede nutten Nybegynder
24. april 2003 - 22:17 #36
Hvad typer har username og fdays?
Avatar billede sp Nybegynder
24. april 2003 - 22:20 #37
username er tekst
fdays er tekst og tal
jeg tror ikke det er fejlen for det har jo virket med den gamle metode.
Forresten. Er der et sted på nettet hvor man kan finde noget dokumentation til acces?
Avatar billede nutten Nybegynder
24. april 2003 - 22:26 #38
Jeg vil nok skyde på Microsoft har en del dokumentation :o)

Type >> Du har " " omkring username men '" "' omkring fdays, det var mere derfor..
Avatar billede sp Nybegynder
24. april 2003 - 22:26 #39
SQL="SELECT COUNT(*) AS t1 FROM " & username & " WHERE Followed > '" & fdays & "' AND Trash=0 UNION SELECT COUNT(*) AS t2 FROM " & username & " WHERE Followed < '" & fdays & "' AND Trash=0;"

Set rsClients = Conn.Execute (SQL)
Response.Write rsClients("t1")
'Response.Write rsClients("t2")

Hvis jeg slår den ene sætning fra (t2), så får jeg ingen fejl. Den kan godt hente t1 ud.
Avatar billede sp Nybegynder
24. april 2003 - 22:28 #40
Men det virker fint. De 2 SQL-sætninger øverst i spm. virker fint. jeg ville bare se om jeg kunne spare en variabel, ved at trække det hele ud én gang
Avatar billede nutten Nybegynder
24. april 2003 - 22:31 #41
Okay, det virker lidt sært. Det kan altså godt lade sig gøre, at lave en sætning :)
Avatar billede sp Nybegynder
24. april 2003 - 22:32 #42
De her virker fint:
SELECT COUNT(*) AS Antalfo FROM " & username & " WHERE Followed > '" & fdays & "' AND Trash=0
SELECT COUNT(*) AS Antalark FROM " & username & " WHERE Followed < '" & fdays & "' AND Trash=0
Avatar billede sp Nybegynder
24. april 2003 - 22:36 #43
Er du sikker på at man også kan bruge COUNT(*) i en UNION?
Avatar billede sp Nybegynder
24. april 2003 - 22:36 #44
Jeg kender godt UNION
Avatar billede sp Nybegynder
24. april 2003 - 22:39 #45
Nåh jeg lukker ned for natten. Det er ikke sikkert at der er en løsning på det, ellers ville det nok være UNION der skulle bruges...
hmm trist.
Avatar billede nutten Nybegynder
24. april 2003 - 22:42 #46
Inden du smutter kan du jo lige se dette:
Gå ind på:
http://www.nutten.kollegiegaarden.dk/scripts/sqlforesporgsel.php

select count (*) as t1 from Tbbruger where brugertype=1
union
select count (*) as t2 from tbbruger where brugertype=2

Copy/paste følgende ind i feltet.. Projekt jeg har lavet på skole Det virker..
Avatar billede proaccess Nybegynder
25. april 2003 - 08:10 #47
"SELECT SUM(IIF(Followed > '" & fdays & "', 1, 0)) AS Antalfo, SUM(IIF(Followed < '" & fdays & "')) AS Antalark FROM " & username & " WHERE Trash = 0"
Avatar billede terry Ekspert
25. april 2003 - 08:59 #48
Ho proacces, a while since you've been around :o)
Thats another way to do it, and it should normally work in Access. I've had problems using buildt in functions from VB, hopefully it will work via ASP though.
Avatar billede sp Nybegynder
25. april 2003 - 09:19 #49
Ny mulighed. Den vil jeg prøve
Avatar billede sp Nybegynder
25. april 2003 - 09:42 #50
Error Type:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
[Microsoft][ODBC Microsoft Access Driver] Wrong number of arguments used with function in query expression 'SUM(IIF(Followed < '03-03-26-09-39-42'))'.
/debat/top.asp, line 25
Avatar billede sp Nybegynder
25. april 2003 - 09:51 #51
Nu har jeg prøvet alt muligt. Det virker ikke med acces og ASP.... Det er mystisk for jeg synes også det ser fint ud, men den kan åbenbart ikke tolke det.
Avatar billede sp Nybegynder
25. april 2003 - 10:05 #52
Ved en fejltagelse oprettede jeg spm. i MS SQL før. Og de fleste af de løsninger har virket. Det er sikkert fordi det mindre meget om hinanden, men når jeg så flytter herover hvor det ér acces, så er der intet der virker....???
Avatar billede proaccess Nybegynder
25. april 2003 - 10:09 #53
Prøv så med:

SELECT -SUM((Followed > '" & fdays & "')) AS Antalfo, -SUM((Followed < '" & fdays & "')) AS Antalark FROM " & username & " WHERE Trash = 0"
Avatar billede sp Nybegynder
25. april 2003 - 10:27 #54
Den virker!
Avatar billede sp Nybegynder
25. april 2003 - 12:31 #55
Hvor skal jeg oprette mine spm fremover? Det som har kunne køre i flest tilfælde er svar fra MS SQL-kategorien. Jeg er lidt forvirret nu. Jeg sidder jo med Acces...??
Avatar billede terry Ekspert
25. april 2003 - 18:44 #56
If the question question concerns Access, this also means SQL in Access then this is the correct category. If it is the ASP side of things then you should place the question there. Sometimes it could cover BOTH areas so I would suggest first ASP and then Access. The reason I suggest this order is that quite often it is the connection string which is the problem and this is specific to ASP.
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