Har 3 sql strängar. EN som hämtar data och två som räknar olika fält i databasen. Vill nu slå ihop dessa 3 till 1 om det går. All data är ifrån samma tabell. Någon som kan?
[b]SQL1[/b]
Set RS = Conn.Execute("Select * From users Order By anvnamn")
[b]SQL2[/b]
Set Antal=Conn.Execute("Select Count(*) as antal From users Where sponsor='" & RS("anvnamn") & "'")
[b]SQL3[/b]
Set Antal2=Conn.Execute("Select Count(*) as antal2 From users Where sponsor='" & RS("anvnamn") & "' and vip=1")
Har testat detta men det blir fel hela tiden. Är MYSQL jag har som databas! Ni kanske vet varför det blir felet:
Microsoft OLE DB Provider for ODBC Drivers error '80040e09'
[TCX][MyODBC]You have an error in your SQL syntax near 'select count(*) from users B Where B.sponsor=U.anvnamn) as Spo1,(select c' at line 1
SQL = "SELECT U.ar,U.man,U.dag,U.userid,U.anvnamn,U.status,U.kon,(select count(*) from users B Where B.sponsor=U.anvnamn) as Spo1,
(select count(*) from users C Where C.sponsor=U.anvnamn and vip=1) as Spo2 FROM users U Group By spo1
ORDER BY 8 DESC"
Den typen av frågor stöds inte av Mysql. Även om det gick så skulle jag ändå rekommendera att göra det som två frågor. Den första som den är nu. Frågorna med count kan man slå ihop till en
Select Count(*) as antal,
sum(case when vip = 1 then 1 else 0 end) as vip
From users
Where sponsor='" & RS("anvnamn") & "'"
Grejjer är ju så att jag har sidnavigering på allt och sen ska bara de personer visas som har sponsrat någon. FÖrstår du. SOm det är nu kan man ju köra en if antal > 0 men då blire ju fel med sidnavigeringen!
Det är alltså Sidan = Request.QueryString("sida") som är fel som jag tolkar det, du får alltid =1, dvs sida är tom.
Då är det endast att gräva ned sig i koden, i detta fall själva adressen.
- vad står det i adressfältet, sida=?
- om du ändrar sida manuellt, blir det rätt då
Nää det är inte det. Grejjen är att alla fält i databasen räknas och splittas upp på olika sidor som det är men nu är det så att jag har en ifsats i loopen där de som har mer än 0 visas och då blir det ju helt fel med sidorna. Man ska ju bara räkna ihop de medlemmar som värvat folk. Har mer än 0 i antal.
SQL2:
Select Count(*) as antal, sum(case when vip = 1 then 1 else 0 end) as vip From users Where sponsor='" & RS("anvnamn") & "'
Jag vill i SQL1 kunna sortera efter den med mest sponsrade men det går kaske ej för den sqlen kommer efter och går ej att bygga in i den första? För jag vill ju ha den som sponsrat flest längst upp och mins längst ner.