/ Forside / Teknologi / Udvikling / ASP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
ASP
#NavnPoint
smorch 9259
Harlekin 1866
molokyle 1040
Steffanst.. 758
gandalf 657
smilly 564
gibson 560
cumano 530
MouseKeep.. 480
10  Random 410
Sum at indholdet i alle poster ?
Fra : Is


Dato : 22-11-09 22:27

Hej

Jeg har en side, hvor jeg viser indholdet af nogle felte i alle
poster:

While not strdbsvar.eof
%>
<tr>
<td><%Response.write strdbsvar.fields ("N")%></td>
<td><%Response.write strdbsvar.fields ("navn")%></td>
<td></td>
<td></td>
<td align="center"><%Response.write strdbsvar.fields ("felt1")%></td>
<td></td>
<td align="center"><%Response.write strdbsvar.fields ("felt2")%></td>
<td></td>
<td></td>
<td></td>
<td><%Response.write strdbsvar.fields ("svdato")%></td>
</tr>
<%
strdbsvar.MoveNext
wend


hvis nu jeg vil have sum af "felt1" for alle poster, til at stå øverst
i tabellen, hvordan gør jeg så det nemmest??
indholdet i felt1 er et tal mellem 0 og 4
Datatypen er tekst




--
mvh
Erik Isager



 
 
Stig Johansen (23-11-2009)
Kommentar
Fra : Stig Johansen


Dato : 23-11-09 03:37

Is wrote:

> hvis nu jeg vil have sum af "felt1" for alle poster, til at stå øverst
> i tabellen, hvordan gør jeg så det nemmest??
> indholdet i felt1 er et tal mellem 0 og 4
> Datatypen er tekst

Lav det om til tal.
hvis du vil kende summen før du udskriver, kan du lave en sql med
SELECT SUM(felt1) AS summen FROM tabellen WHERE...

Hvis det skal være 100 % sikkert, skal man pakke det ind i en transaktion,
da man ellers risikerer at der bliver ændret/tilføjet mellem den første og
anden SQL.

En anden metode er at bruge javascript, hvor du kan udskrive summen i et
skjult tag, og ved onload kopiere dette over i et startfelt.

--
Med venlig hilsen
Stig Johansen

Is (23-11-2009)
Kommentar
Fra : Is


Dato : 23-11-09 20:25


"Stig Johansen" <wopr.dk@gmaill.com> skrev i en meddelelse
news:4b09f5c7$0$280$14726298@news.sunsite.dk...
> Is wrote:
>
> > hvis nu jeg vil have sum af "felt1" for alle poster, til at stå
øverst
> > i tabellen, hvordan gør jeg så det nemmest??
> > indholdet i felt1 er et tal mellem 0 og 4
> > Datatypen er tekst
>
> Lav det om til tal.
> hvis du vil kende summen før du udskriver, kan du lave en sql med
> SELECT SUM(felt1) AS summen FROM tabellen WHERE...

Det har jeg prøvet, man kunne ikke få den til at virke

Er det fordi feltet er "tekst" og ikke "tal" ???

>
> Hvis det skal være 100 % sikkert, skal man pakke det ind i en
transaktion,
> da man ellers risikerer at der bliver ændret/tilføjet mellem den
første og
> anden SQL.

så meget aktivitet er det heller ikke så det betyder noget


Og til Philip - og andre, så er indholdet "valgt" i en select, så jeg
ved at indholdet er tal.


Det er dog lykkedes mig at få fat i summen - jeg har lavet en
forespørgsen i databasen der finder summen, og så henter jeg den
derfra. Er det en dårlig ide ???

'sum af tilmeldinger
Set strsum = Server.CreateObject("ADODB.Recordset")
strsum.Open "SELECT * FROM sqlSum " , strConnectSvar

'Response.write strsum.fields ("SumOffelt1")
'Response.write strsum.fields ("SumOffelt2")


mvh Erik



Stig Johansen (24-11-2009)
Kommentar
Fra : Stig Johansen


Dato : 24-11-09 03:21

Is wrote:

>
> "Stig Johansen" <wopr.dk@gmaill.com> skrev i en meddelelse
> news:4b09f5c7$0$280$14726298@news.sunsite.dk...
>>
>> Lav det om til tal.
>> hvis du vil kende summen før du udskriver, kan du lave en sql med
>> SELECT SUM(felt1) AS summen FROM tabellen WHERE...
>
> Det har jeg prøvet, man kunne ikke få den til at virke
>
> Er det fordi feltet er "tekst" og ikke "tal" ???

Ja - jeg tror ikke der findes nogle databaser, der kan regne på tekster.

Og da du skriver at indholdet er tal, er det vel også mere logisk at bruge
talfelter.

Når man bruger tekst får man også forkerte sorteringer, f.eks.
1,10,12,2,21,3,300,31.. osv

> strsum.Open "SELECT * FROM sqlSum " , strConnectSvar

Du skriver ikke hvad dit sql er (sqlSum).
Hvis du har lavet et view(forespørgsel) direkte i access, kan du skifte
visning til SQL.

--
Med venlig hilsen
Stig Johansen

Is (24-11-2009)
Kommentar
Fra : Is


Dato : 24-11-09 22:38


"Stig Johansen" <wopr.dk@gmaill.com> skrev i en meddelelse
news:4b0b4382$0$281$14726298@news.sunsite.dk...
> Is wrote:
>
> >
> > "Stig Johansen" <wopr.dk@gmaill.com> skrev i en meddelelse
> > news:4b09f5c7$0$280$14726298@news.sunsite.dk...
> >>
> >> Lav det om til tal.
> >> hvis du vil kende summen før du udskriver, kan du lave en sql med
> >> SELECT SUM(felt1) AS summen FROM tabellen WHERE...
> >
> > Det har jeg prøvet, man kunne ikke få den til at virke
> >
> > Er det fordi feltet er "tekst" og ikke "tal" ???
>
> Ja - jeg tror ikke der findes nogle databaser, der kan regne på
tekster.
>
> Og da du skriver at indholdet er tal, er det vel også mere logisk at
bruge
> talfelter.
>
> Når man bruger tekst får man også forkerte sorteringer, f.eks.
> 1,10,12,2,21,3,300,31.. osv
>
> > strsum.Open "SELECT * FROM sqlSum " , strConnectSvar
>
> Du skriver ikke hvad dit sql er (sqlSum).
> Hvis du har lavet et view(forespørgsel) direkte i access, kan du
skifte
> visning til SQL.

Lige nu har jeg en tilbagemelding kørende, så af sikkerhedsårsager vil
jeg ikke ændre på feltets egenskaber.

Det med sortering er jeg klar over, husker jeg ret, så var der et
eller andet der drillede da jeg oprettede siden og feltet var tal
format, men virkede hvis det var tekst format- hvad kan jeg ikke
huske.

SQL som jeg har lavet i databasen (access) ser sådan ud:
SELECT Sum([tblInfo_m_svar].[felt1]) AS SumOffelt1,
Sum([tblInfo_m_svar].[felt2]) AS SumOffelt2
FROM tblInfo_m_svar;

mvh Erik



Stig Johansen (25-11-2009)
Kommentar
Fra : Stig Johansen


Dato : 25-11-09 01:55

Is wrote:

> Lige nu har jeg en tilbagemelding kørende, så af sikkerhedsårsager vil
> jeg ikke ændre på feltets egenskaber.

Hvis det virker, så skal du heller ikke ændre det.

> SQL som jeg har lavet i databasen (access) ser sådan ud:
> SELECT Sum([tblInfo_m_svar].[felt1]) AS SumOffelt1,
> Sum([tblInfo_m_svar].[felt2]) AS SumOffelt2
> FROM tblInfo_m_svar;

Det er det samme som at skrive
SELECT SUM(felt1) AS SumOffelt1,SUM(felt2) AS SumOffelt2 FROM tblInfo_m_svar
i din ASP.

Men om det ligge som et view eller bliver skrevet direkte er ligegyldigt.

I virkeligheden kan det godt betale sig at definere nogle SQL'er som views,
da de er 'forcompileret', og burde give bedre performance.

Jeg ved dog ikke om det har betydning i Access, men i større databaser kan
det godt have en betydning.

--
Med venlig hilsen
Stig Johansen

Philip Nunnegaard (23-11-2009)
Kommentar
Fra : Philip Nunnegaard


Dato : 23-11-09 05:25

Is skrev:

> hvis nu jeg vil have sum af "felt1" for alle poster, til at stå øverst
> i tabellen, hvordan gør jeg så det nemmest??
> indholdet i felt1 er et tal mellem 0 og 4
> Datatypen er tekst

Som Stig ville jeg nok også lade datatypen være tal i stedet for tekst.
Bare for at være sikker på ikke uforvarende at lægge "5" og "Hundehoved"
sammen.

Så til selve sagen:
Jeg har det selv bedst med at have serversidekoden som henter data fra
databasen, før jeg når ned til selve html-filen. Dvs. mine filer gerne
er bygget op på denne måde:

<% Henter data fra databasen %>
<html...>
<head>
(osv.)
</head>
<body>
<table>
<tr>
<td></td>
(...)
<td><%=tabelsum%></td>
</tr>
<%
response.write tabelindhold
%>
</table>
....osv...

På denne måde har jeg de relevante data som jeg skal bruge og kan smide
dem ind i den rækkefølge jeg lyster, og jeg har også det der skal bruges
til f.eks. <title>-tagget.

Om det er en god eller dårlig kodestil, vil jeg dog lade andre om at
vurdere.

Birger Sørensen (23-11-2009)
Kommentar
Fra : Birger Sørensen


Dato : 23-11-09 13:43

Is forklarede den 22-11-2009:
> Hej
>
> Jeg har en side, hvor jeg viser indholdet af nogle felte i alle
> poster:
>
> While not strdbsvar.eof
> %>
> <tr>
> <td><%Response.write strdbsvar.fields ("N")%></td>
> <td><%Response.write strdbsvar.fields ("navn")%></td>
> <td></td>
> <td></td>
> <td align="center"><%Response.write strdbsvar.fields ("felt1")%></td>
> <td></td>
> <td align="center"><%Response.write strdbsvar.fields ("felt2")%></td>
> <td></td>
> <td></td>
> <td></td>
> <td><%Response.write strdbsvar.fields ("svdato")%></td>
> </tr>
> <%
> strdbsvar.MoveNext
> wend
>
>
> hvis nu jeg vil have sum af "felt1" for alle poster, til at stå øverst
> i tabellen, hvordan gør jeg så det nemmest??
> indholdet i felt1 er et tal mellem 0 og 4
> Datatypen er tekst

Jeg er ikke nogen ørn til ASP. Men har tit selv lignende udfordringer i
PHP.
En løsningen er, at udskrive til en variabel, i stedet for til html i
løkken, og samtidig lade løkken tælle dine felt1-poster sammen. Den kan
så enten udskrives før variablen, eller prependes til den, inden det
hele udskrives - noget a-la Philips løsning.

Birger

--
http://varmeretter.dk - billig, sund og hurtig mad
http://bbsorensen.dk



Mogens Busk (28-11-2009)
Kommentar
Fra : Mogens Busk


Dato : 28-11-09 08:55

Hej.

Hvis du vil lave en tekststreng om til et tal kan du bruge
Val("dit tekstfelt"). Alle de felter, der ikke starter med et tal bliver
ignoreret, så hvis feltet har værdien "hundehoved", bliver det ignoreret,
hvorimod et felt med værdien "123hundehoved" får værdien 123.

Mvh.
Mugge

"Birger Sørensen" <sdc@bbsorensen.com> skrev i en meddelelse
news:4b0a8360$0$274$14726298@news.sunsite.dk...
> Is forklarede den 22-11-2009:
>> Hej
>>
>> Jeg har en side, hvor jeg viser indholdet af nogle felte i alle
>> poster:
>>
>> While not strdbsvar.eof
>> %>
>> <tr>
>> <td><%Response.write strdbsvar.fields ("N")%></td>
>> <td><%Response.write strdbsvar.fields ("navn")%></td>
>> <td></td>
>> <td></td>
>> <td align="center"><%Response.write strdbsvar.fields ("felt1")%></td>
>> <td></td>
>> <td align="center"><%Response.write strdbsvar.fields ("felt2")%></td>
>> <td></td>
>> <td></td>
>> <td></td>
>> <td><%Response.write strdbsvar.fields ("svdato")%></td>
>> </tr>
>> <%
>> strdbsvar.MoveNext
>> wend
>>
>>
>> hvis nu jeg vil have sum af "felt1" for alle poster, til at stå øverst
>> i tabellen, hvordan gør jeg så det nemmest??
>> indholdet i felt1 er et tal mellem 0 og 4
>> Datatypen er tekst
>
> Jeg er ikke nogen ørn til ASP. Men har tit selv lignende udfordringer i
> PHP.
> En løsningen er, at udskrive til en variabel, i stedet for til html i
> løkken, og samtidig lade løkken tælle dine felt1-poster sammen. Den kan så
> enten udskrives før variablen, eller prependes til den, inden det hele
> udskrives - noget a-la Philips løsning.
>
> Birger
>
> --
> http://varmeretter.dk - billig, sund og hurtig mad
> http://bbsorensen.dk
>
>



Søg
Reklame
Statistik
Spørgsmål : 177415
Tips : 31962
Nyheder : 719565
Indlæg : 6407853
Brugere : 218876

Månedens bedste
Årets bedste
Sidste års bedste