webForumDet fria alternativet

SQL fråga, Access + ASP

3 svar · 541 visningar · startad av civilpolisen

civilpolisenMedlem sedan dec. 2009872 inlägg
#1
Problemet är DENNA raden:
SQL = "SELECT r.intID, r.strName, r.strName2, r.strPathName, r.strFileName" _
	& ", ( SELECT COUNT(*) FROM [users] u WHERE u.intRegionID = r.intID ) " _
	[b]& ", ( SELECT COUNT(*) FROM [article] a, [users] u WHERE a.intUserID = u.intID AND u.intRegionID = r.intID ) " _[/b]
	& " FROM [region] r WHERE r.bolView = TRUE ORDER BY r.strName;"

Detta fungerade bra ett antal dagar... men sen kom felmeddelande, "Invalid operation", och det gick att lösa med... :
SQL = "SELECT r.intID, r.strName, r.strName2, r.strPathName, r.strFileName" _
	& ", ( SELECT COUNT(*) FROM [users] u WHERE u.intRegionID = r.intID ) " _
	& ", ( SELECT COUNT(*) FROM [article] a, [users] u, [b][region] r[/b] WHERE a.intUserID = u.intID AND u.intRegionID = r.intID ) " _
	& " FROM [region] r WHERE r.bolView = TRUE ORDER BY r.strName;"

Då fungerade koden i sig, men då blev uträkningen fel...
Nu står det lite still i min hjärna och jag har prövat olika varianter av detta...

[users]
intID
intRegionID

[article]
intID
intUserID

[region]
intID

Jag vill alltså räkna antalet artiklar skrivna i varje region. (Då får man kolla vilka
som bor i den regionen...)
Man kan säkert göra så här, men jag skulle vilja göra rätt!! :-)
Är jag tydlig nog, eller ska jag utveckla mig ännu mer??

nitro2k01Medlem sedan aug. 20039 342 inlägg
#2

Lägg GROUP BY u.intID precis innan ORDER BY

Dessutom skulle din fråga vara snyggare om den skrevs med en join istället för en from med två tabellnamn. Och som frågan ser ut nu får du inte ut användare med 0 skrivna artiklar, detta kan du lösa med en left join.

Edit: Feltänk, låt mig återkomma.

civilpolisenMedlem sedan dec. 2009872 inlägg
#3

Ja... jag tror du läser lite fort, eller jag som uttrycker mig dåligt.

Jag vill gärna få 0 (noll) antalet skrivna artiklar från varje region... (det är län som avses, om det skulle underlätta...)

Det är typ liknande webbtidning och olika folk bor i olika delar av landet... och skriver olika texter.... (motsvarande)

Som det är nu är det 1 text i varje region, i varje län, och det är fel...

***
redigera:

Eller också bara skiter vi i den frågan... det löser det hela...!! :-)

LarsGMedlem sedan dec. 200012 464 inlägg
#4
select r.intID, 
       r.strName, 
       r.strName2, 
       r.strPathName, 
       r.strFileName,
       count(u.intRegionId),
       (select count(*) 
          from article
         where intUserID = u.intid)
  from region r
  left join users u
    on u.intRegionID = r.intID
 where r.bolView = true
 group by r.intID, 
       r.strName, 
       r.strName2, 
       r.strPathName, 
       r.strFileName
 order by r.strName
256 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
124 ms — hämta statistik (db)
130 ms — hämta tråd, inlägg och bilagor (db)