帮忙解释一下这些语句
<%
Totel = 0
j = 1
Do Until j > 12
Money = 0
Set yue = Conn.Execute( "Select Money,InOut From [PayList] Where PayType= ' "&pType& " ' and Time like '% "&month(j)& "% ' ") (这里 Time like '% "&month(j)& "% ' 不明白)
If Not yue.Eof Then
Do While Not yue.Eof
If yue(1) = 1 Then Money = Money + Cint(yue(0))
If yue(1) = 0 Then Money = Money - Cint(yue(0))
yue.MoveNext
Loop
Totel = Totel + Money
For k=1 To 12
If k=j Then
If Money <0 Then OutMonth(k) = OutMonth(k) + Money(这里OutMonth(k)这个K是代表什么意思?)
If Money> 0 Then InMonth(k) = InMonth(k) + Money
SumMonth(k) = SumMonth(k) + Money
End if
Next
------解决方案--------------------Time like '% "&month(j)& "% '这是个模糊查询,比如month(j)=9的话,可查询出0908等。
OutMonth(k),是你自己定义的函数吧,k是1-12中的值。
------解决方案--------------------Time like '% "&month(j)& "% '
SQL语法上指时间日期字符串中包含month(j),month本是VBScript中的系统函数,参数是Date型,它这里搞了一个j(整形的),不知是写错了还是咋滴。
For k=1 To 12
If k=j Then
If Money <0 Then OutMonth(k) = OutMonth(k) + Money(这里OutMonth(k)这个K是代表什么意思?)
If Money> 0 Then InMonth(k) = InMonth(k) + Money
SumMonth(k) = SumMonth(k) + Money
End if
Next
For中只包含了一个If语句 If k=j Then
有这个必要吗?要For做啥呢?
不就是 If j> =1 And j <=12 吗?
去掉For,同时把k改成j
If j> =1 And j <=12 Then
If Money <0 Then OutMonth(j) = OutMonth(j) + Money
If Money> 0 Then InMonth(j) = InMonth(j) + Money
SumMonth(j) = SumMonth(j) + Money
End if
这里的
OutMonth(j)与inMonth(j)应该是计算月份为j的这个月的收入与支出,这里你没有给出这两个函数的代码。
程序中我提出了两点不合理的地方,多少说明程序有点问题,建议这样的代码不看也罢