Just nu i M3-nätverket
Jump to content

Fel i koden


Strigge

Recommended Posts

Jag får inte min sida att fungera.

På ett ställe har jag följande kod:

------

SQL = "Select Sum([t1]) AS [st1], Sum([t2]) AS [st2], Sum([t3]) AS [st3], Sum([t4]) AS [st4], Sum([t5]) AS [st5], Sum([t6]) AS [st6], Sum([t7]) AS [st7], Sum([t8]) AS [st8], Sum([t9]) AS [st9], Sum([t10]) AS [st10], k1, k2, k3, k4, k5, k6, k7, k8, k9, k10 From statistik Where anamn = '"&UserName&"'"

------

 

Längre ner har jag följande:

------

<% =RS("k1") %>

------

 

Jag får detta felmeddelande:

------

Feltyp:

Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)

[Microsoft][Drivrutin för ODBC Microsoft Access] Du försökte köra en fråga med en mängdfunktion som inte innehöll det angivna uttrycket 'k1'.

------

 

Vad är fel?

Link to comment
Share on other sites

har du testat följande ?

 

SQL = "Select k1, k2, k3, k4, k5, k6, k7, k8, k9, k10, Sum([t1]) AS [st1], Sum([t2]) AS [st2], Sum([t3]) AS [st3], Sum([t4]) AS [st4], Sum([t5]) AS [st5], Sum([t6]) AS [st6], Sum([t7]) AS [st7], Sum([t8]) AS [st8], Sum([t9]) AS [st9], Sum([t10]) AS [st10] From statistik Where anamn = '"&UserName&"'"

 

 

 

Don't Underestimate The Power Of Esuk ...

 

Link to comment
Share on other sites

Det går inte att blanda aggregatfunktioner (som sum) med andra uttryck utan att du har en group by på alla kolumner som inte ingår i en aggregatfunktion.

 

Nu vet jag inte exakt vad du vill ha fram men det ser ut som om du borde dela upp det i två frågor. En där du gör summeringar och en däår du hämtar kolumnvärden.

 

Link to comment
Share on other sites

Jag har testat att dela upp frågan på två men det fungerade inte heller.

Jag har en sida med statistik.

Där ska en person lägga till hur mycket den personen har läst olika ämnen.

Vad jag vill är att t.ex. personens sammanlagda tid ska visas och det är där jag använder SUM. De andra kolumnerna innehåller namnet på ämnena och det ska ju inte räknas ihop.

Hoppas du förstår vad jag menar.

 

 

 

 

Link to comment
Share on other sites

Grundproblemet är att du har en felaktig databasdesign. Istället för som nu, att du har en kolumn för varje ämne, så borde du ha så att du lagrar en psot för varje kombination av användare och ämne.

 

create table timespentOnSubject(
subject varchar(20),
username varchar(20),
timeSpent time)

 

För att då få få from hur mycket varje person spenderat på varje ämne kan du ställa en fråga som

 

select sum(timeSpent),username,subject
from timespentOnSubject
group by username,subject

 

Med din nuvarande databasdesign ser jag inget alternativ till att du får skriva en fråga per ämne

 

select sum(t1),k1,anamn
from statistik
group by anamn,k1
where anamn = 'nisse'

 

och så vidare för varje ämne. I och för sig så kan du slå ihop det hela med en union men det blir ändå besvärligt.

 

En annan nackdel med din design är att det blir besvärligt att lägga till nya ämnen. För att hantera det så måste du dels förändra tabellen och dels förändra de frågor som tar fram statistiken.

 

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.



×
×
  • Create New...