Avatar billede brownghost Nybegynder
14. august 2004 - 13:41 Der er 14 kommentarer og
1 løsning

minutter total

Hvordan regner jeg tal sammen fra poster.
Jeg skal have regne tal sammen fra mange poster og have et resultat i timer og minutter.
Eks: 45.15 Timer.

Altså funktionen skal vide at 60 minutter er = 1 time
Min tabel hedder: Video_Series og min kolonne hedder Playtime
Avatar billede soes Nybegynder
14. august 2004 - 14:20 #1
hvis du har gemt tallet som værende minutter kan du måske gøre noget ala.

sum = 0
If(NOT Rs.EOF) Then
do
sum = sum + Rs("Playtime")
Rs.MoveNext
loop
End If

hours = sum MOD 60
minutes = sum - (hours * 60)

Response.Write(hours & "." & minutes)
Avatar billede eagleeye Praktikant
14. august 2004 - 14:21 #2
Hvad enhed er playtime i, minutter eller timer eller ?
Avatar billede brownghost Nybegynder
14. august 2004 - 14:32 #3
Det er gemt i munuter
Avatar billede brownghost Nybegynder
14. august 2004 - 15:53 #4
Type mismatch: '[string: "??"]'

<%
strSQL = "SELECT Playtime FROM Video_Series"
Set RsPlaytime = objConn.Execute(strSQL)
%>


<h1>Video minutter.</h1>
<p>



<%
sum = 0
If(NOT RsPlaytime.EOF) Then
do
sum = sum + RsPlaytime("Playtime")
RsPlaytime.MoveNext
loop
End If

hours = sum MOD 60
minutes = sum - (hours * 60)

Response.Write(hours & "." & minutes)
%>

Virker ikke :(
Avatar billede eagleeye Praktikant
14. august 2004 - 16:20 #5
Prøv sådan her:

<%
strSQL = "SELECT sum(Playtime) as antal_min FROM Video_Series"
Set RsPlaytime = objConn.Execute(strSQL)

shours = Int(RsPlaytime("antal_min")/60)
smins = Int(RsPlaytime("antal_min"))-shours*6
Response.Write "total tid : " & shours & "." & smins

%>
Avatar billede eagleeye Praktikant
14. august 2004 - 16:23 #6
hmm det skal være *60 og ikke kun *6
Avatar billede brownghost Nybegynder
28. august 2004 - 02:34 #7
[Microsoft][ODBC SQL Server Driver][SQL Server]The sum or average aggregate operation cannot take a nvarchar data type as an argument.

Min data type er nvarchar, skal denne laves om til eks: bit ?
Avatar billede steen_hansen Forsker
28. august 2004 - 02:59 #8
Kigger med
Avatar billede eagleeye Praktikant
28. august 2004 - 10:23 #9
Umiddelbart ville jeg sige Int, eller prøv med caste til int i SQL støgningen:

strSQL = "SELECT sum(cast(Playtime) as int) as antal_min FROM Video_Series"

JEg kan ikke helt gennem skue om der skal byttes på cast og sum. Jeg må erkende jeg ikke ret meget til MSSQL.
Ellers må man lave koden som du har vist i 14/08-2004 15:53:00 og tælle sammen i ASP koden, jeg syntes bare det smarteste var at få databasen til at gøre det arbejde.
Avatar billede brownghost Nybegynder
29. august 2004 - 15:35 #10
Takker det virker perfect :)

Jeg har en ting mere. jeg vil gerne tælle poster: Gallery_Images
for at lave stat på hvor mange billeder jeg har på siden.
Her efter tror jegde t er bedst at lave det som en task i sqlen.
så den 1 gang om ugen tækker poster, og poster antal i tabel der hedder stat: kollone Gallery_Images

Så kan jeg fra den trækker ud hvor mange billeder der er og vise det på siden.
grunde til jeg vil gøre det sådan er at ellers skal SQL'en arbejde helt hvildtt hver gang en bruger skal se stat. og der er nok over 500.000 billeder på siden.

Kan du hjælpe. hvordan tæller jeg poster?

strSQL = "SELECT ID FROM Gallery_Images"
Set rsImagestat = objConn.Execute(strSQL)

??? tælle poster..

Takker :)
Avatar billede eagleeye Praktikant
29. august 2004 - 15:47 #11
Hvis du åber dit recordset med .Open metoden, sådan dette:
strSQL = "SELECT ID FROM Gallery_Images"
Set rsImagestat = objConn.Execute(strSQL)

Bliver til:
strSQL = "SELECT ID FROM Gallery_Images"
Set rsImagestat = Server.CreateObject("ADODB.Recordset")
rsImagestat.Open strSQL, objConn, 1

så kan du finde antalet med rsImagestat.RecordCount

antal=rsImagestat.Recordcount


Alternativt kan du tælle med SQL:
strSQL = "select count(*) as antal from GalleryImages"
set rsCount=objConn.Execute(strSQL)
antal=rsCount("antal")
Avatar billede eagleeye Praktikant
29. august 2004 - 15:50 #12
Du kan også kigge på at udføre begge SQL sætninger på samme tid det kan man med MSSQL

strSQL = "select count(*) as antal from GalleryImages; SELECT ID FROM Gallery_Images"
set rsCount = objConn.Execute(strSQL)
antal = rsCount("antal")
set rsImagestat = rsCount.NextRecordset


Jeg ved ikke helt om koden er rigtig for jeg har aldrig prøvet det :)
men du kan kigge mere på det her:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/ado270/htm/mdmthopenrecord.asp
Avatar billede brownghost Nybegynder
09. oktober 2004 - 03:44 #13
takker, sorry for så send svar. det virker det her:

<%
strSQL = "select count(*) as antal from Gallery_Images"
set rsCount=objConn.Execute(strSQL)
%>
<%= rsCount("antal") %>

Næste problem er at jeg som sagt vil sætte det ind i et JOB i SQL. Jon køre på samme måde som Queue analyzer.
jeg har forsøgt en del koder men kan ikke få det til at spille :(

select count(*) as antal from Gallery_Images
UPDATE stat set PictureStat = antal

det jeg skal er at update piturestat med det antal billeder der er i gallery_images
grunden til jeg gør det sådan her er at jeg har 5000 daglig besøgende, det er ånsvagt at de alle skal trække de billeder stat ud af den database da den der mange, så vil jeg heller køre et job der updater altal 1 gang om dagen og så vise det resultat. så bliver serveren ikke belastet med det.
Avatar billede eagleeye Praktikant
09. oktober 2004 - 10:22 #14
Hvad hvis du skriver det som

UPDATE stat set PictureStat = (select count(*) as antal from Gallery_Images)
Avatar billede brownghost Nybegynder
09. oktober 2004 - 12:14 #15
LOL nej hvor fladt, det har jeg ellers prøvet, men den ville ikke update.
Det var fordi der ikke var nogle tal i den nye tabel Stat, LOL så kunne den ikke update noget som helst..

men nu virker det og jeg kan bruge den her teknik mange steder på min side. da der er en del jeg gerne vil have status på.

Tak for hjælpen..
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