Just nu i M3-nätverket
Gå till innehåll

uträkning


eddie66

Rekommendera Poster

första SQL-satsen:

 

SQL = "SELECT dagenstotal From tblforsaljning WHERE ForsaljningsDatum = #"& CDate(dYesterday) & "# Order by dagenstotal desc

[din kod för att skapa recordset]

rekord = recset("dagenstotal")

Set recordset = Nothing

 

Nu har du skapat en variabel med försäljningsrekordet som heter rekord

 

nu kan du köra din "orginal" SQL-sats och loopa igenom den och kolla om någon är bättre än rekordet...

 

Det finns lite fällor i detta men det går säkert att lösa även det...dvs det kan bli flera samma dag som slår rekordet...

 

vi kan titta på det efter helgen och lösa det via mail istället.

 

ha en fin helg

 

no10

Rickard

 

Länk till kommentar
Dela på andra webbplatser

i din sql sats så får jag väl bara ut den högsta från gårdagens försäljning?

 

jag vill att den hämtar den högsta siffran av alla kolumner och jämför med dagens försäljning. om dagens är högre så är det rekord.

 

jag kan väl då göra så här?

SQL = "SELECT dagenstotal From tblforsaljning Order by dagenstotal desc "

 

tar inte detta väldigt mycket minne då jag hämtar alla dagenstotal? finns det inget bättre sätt? det är väl bättre att jag hämtar just den siffra som är högst enbart?

 

Länk till kommentar
Dela på andra webbplatser

jag gjorde så här:

Set RecSet2= Server.CreateObject("ADODB.Recordset")
SQL = "SELECT dagenstotal From tblforsaljning Order by dagenstotal asc "
RecSet2.Open SQL, Connect

rekord = recset2("dagenstotal") 

Set RecSet= Server.CreateObject("ADODB.Recordset")
SQL = "SELECT * From tblforsaljning, tblkontor WHERE ForsaljningsDatum = #"& CDate(dYesterday) & "#" & "and tblforsaljning.KontorIDRef = tblkontor.KontorID"
RecSet.Open SQL, Connect


' längre ner på sidan så kollar jag om rekord är högre eller lägre
if rekord < recset("dagenstotal") then

 

i databasen har jag nu satt dagens försäljning som högst på ett kontor. har 2 kontor som sålt denna dag men båda visar bilden som enbart ska komma på den som har sålt mest.

 

några förslag?

 

Länk till kommentar
Dela på andra webbplatser

Tjena!

 

du är på rätt spår dvs att du kollar utan villkor på datum, men tänk på att om det högsta värdet är från "idag" så kommer det inte visas som ett rekord...

 

Ser ut som att du kollar om rekord är mindre än (<) dagenstotal...

 

ska se om jag hinner fixa fram en "bättre" lösning under dagen.

 

Länk till kommentar
Dela på andra webbplatser

har skrivit om SQL-satsen lite nu. Plus ett par saker att tänka på...

 

 

 

Set RecSet2= Server.CreateObject("ADODB.Recordset")
SQL = "SELECT top 10 dagenstotal From tblforsaljning Order by dagenstotal asc "
RecSet2.Open SQL, Connect

rekord = recset2("dagenstotal") 

RecSet2.Close
Set RecSet2 = Nothing


Set RecSet= Server.CreateObject("ADODB.Recordset")
SQL = "SELECT * From tblforsaljning, tblkontor WHERE ForsaljningsDatum = #"& CDate(dYesterday) & "#" & "and tblforsaljning.KontorIDRef = tblkontor.KontorID"
RecSet.Open SQL, Connect


' längre ner på sidan så kollar jag om rekord är högre eller lägre
if rekord < recset("dagenstotal") then
'Vi har ett rekord!!
rekord = recset("dagenstotal") 'Vi ändrar rekordet till det nya rekordet...
Else
'Inget rekord
End If

 

problemet jag ser är att om du först hittar ett kontor som slagit rekordet och sen efter det ett annat kontor

som sålt för ännu mer så kommer båda att få "rekord-bilden"...

 

Som sagt innan om du kollar alla dagenstotal så kommer ingen någonsin att slå rekordet...

För du kommer alltid först att hämta rekordet och sen kolla om någon sålt för mer än det...vilket är omöjligt då.

 

 

 

Länk till kommentar
Dela på andra webbplatser

ok jag tror jag förstå problemet.

 

om jag inte kan få ut exakt vem slagit nytt rekord så tappar det lite meningen.

 

ska fundera ut om jag ska fortsätta med denna ide :-)

 

men tack för all hjälp o tid, jag lärde mig mycket iaf.

 

Länk till kommentar
Dela på andra webbplatser

hihi, många saker att tänka på...

 

Tror det går att lösa om du först hämtar högsta "dagenstotal" som inte är dagensdatum...

 

sen sorterar du resultet i din andra SQL efter dagenstotal vilket gör att du får det högsta först och kan då avgöra om någon slagit rekordet eller inte...

 

svårt att hjälpa mer utan att veta mer om hur db ser ut samt mer av din befintliga kod.

 

lycka till!

 

Länk till kommentar
Dela på andra webbplatser

jag vill gärna få det att fungera om det går. om du tror att du kan hjälpa mig så kan jag maila dig hela koden o en bild av db?

 

eller så kan jag ladda upp allt här?

 

tror du att det går?

 

Länk till kommentar
Dela på andra webbplatser

Arkiverat

Det här ämnet är nu arkiverat och är stängt för ytterligare svar.

×
×
  • Skapa nytt...