עזרה בבקשה, אני מחפש כיוון

AdminWeb

New member
עזרה בבקשה, אני מחפש כיוון

לפני שבועיים בערך רשמתי שיש לי בעיה ועדין אני מחפש פתרון לבעיה והיא כך: אני לא מצליח למספר את הערכים של המערך ביחס למספר הקרוב לממוצע. הייתי מעוניין לקבל רעיונות או עזרה בפיתרון הבעיה שלי, אשמח עם תוכלו לעזור לי. אני כרגע מצרף את הקוד שעליו אני עובד בתרגיל:
<% dim total dim counter dim avg dim dis dim minDis SN = 10 'offerid=2 Set conn=Server.CreateObject("ADODB.connection") Set rs=Server.CreateObject("ADODB.recordset") sql= "SELECT * " _ & "FROM Usercommerce " _ & "WHERE SaleNumber like '" & SN &"'" _ & "ORDER BY offerprice DESC, shkalim DESC, agorot DESC" conn.Open "dsn=commerce" rs.Open sql, conn total = 0 counter = 0 do while not rs.EOF total = total + rs.fields("offerprice") counter = counter + 1 rs.moveNext loop rs.movefirst dis=total avg = total/counter dis = total Response.write("avg:" & avg & ", the array:") do while not rs.EOF Response.write(rs.fields("offerprice") & " ") Response.Write "</br>" if (Abs(avg-rs.fields("offerprice")))<dis then dis = Abs(avg-rs.fields("offerprice")) minDis = rs.fields("offerprice") end if rs.movenext loop response.write("<br>minDis = " & minDis) 'c.close​
אשמח לקבל רעיונות או תשובות ובכלל עזרה בנושא. בכבוד רב רוני.
 

Xעמרי

New member
קשה להתעמק בקוד שלך..אבל...

אבל אולי במקום לחשב את זה לאחר השליפה פשוט תשלוף את הממוצע ואת ההפרש מהממוצע של כל ערך וכך תציג את אלה שההפרש הכי קרוב ל0 משהו בסגנון הזה:
SELECT (select avg(i) from aa) AS expr1, aa.i, expr1-i AS Expr2 FROM aa;​
 

AdminWeb

New member
בו נהיה יותר חכמים, אני רשמתי קוד

אבל אני צריך לדעת איך אני יוצר המקום פלוס 1 במערך כלומר: לשם הדוגמה:
dis2 = (Abs(rs.fields("offerprice"))-avg)'המקום + 1​
הפונקציה שיצרתי היא כזאת:
<% dim total dim counter dim avg dim dis dim minDis SN = 10 'offerid=2 Set conn=Server.CreateObject("ADODB.connection") Set rs=Server.CreateObject("ADODB.recordset") sql= "SELECT * " _ & "FROM Usercommerce " _ & "WHERE SaleNumber like '" & SN &"'" _ & "ORDER BY offerprice DESC, shkalim DESC, agorot DESC" conn.Open "dsn=commerce" rs.Open sql, conn total = 0 counter = 0 counter1 = 0 do while not rs.EOF total = total + rs.fields("offerprice") counter = counter + 1 rs.moveNext loop rs.movefirst dis=total avg = total/counter dis = total dis1 = total Response.write("avg:" & avg & ", the array:") Response.Write "</br>" do while not rs.EOF 'Response.Write counter if (Abs(rs.fields("offerprice"))-avg)<dis1 then dis1 = (Abs(rs.fields("offerprice"))-avg) dis2 = (Abs(rs.fields("offerprice"))-avg)'המקום + 1 במערך minDis1 = rs.fields("offerprice") counter1 = counter1 + 1 end if Response.write(rs.fields("offerprice") & " ") Response.Write " " Response.Write counter1 Response.Write "</br>" if (Abs(avg-rs.fields("offerprice")))<dis then dis = Abs(avg-rs.fields("offerprice")) minDis = rs.fields("offerprice") end if rs.movenext loop response.write("<br>minDis = " & minDis) 'c.close %>​
עכשיו אני מקווה שאני יותר ברור, אגב אין לי צורך בשאילתא שתשלוף את הממוצע ואת ההפרש, אני כבר עשיתי את זה בפונקציה זאת, עכשיו רק נשאר לי לסדר את המערך על פי הסכום הקרוב ביותר להפרש
 

AdminWeb

New member
וזה התיקון הקטן לפונקציה שתעבוד

אני רוצה לדעת איך רושמים המקום + 1 במערך:
if (Abs(rs.fields("offerprice"))-avg)<dis1 then dis1 = (Abs(avg - rs.fields("offerprice"))) dis2 = (Abs(avg - rs.fields("offerprice")))'המקום + 1 במערך minDis1 = rs.fields("offerprice") counter1 = counter1 + 1 end if​
 
למעלה