簡體   English   中英

PHP Access SQL幫助匯總值

[英]PHP Access SQL help on round up values

從Access數據庫中獲取值后,請幫助我進行sql查詢以求取整值。 我正在使用php和access生成標記表。 但是不能在單個查詢中將值四舍五入。 我正在嘗試添加值,但這應該在添加之前先進行四舍五入。 我的意思是,如果標記字段包含14.5,則在添加但不轉換實際數據庫值之前應為15。 這是我的代碼...

if(isset($_GET['action']) && $_GET['action']=='rlist'){
 if($_GET['element_1']=="IX"){
   if( $_GET['element_2']!=1){
   $sql="select m.StudentId,StudentName, m.Roll,m.Sec,m.P1,m.P2,m.P3,m.S1,m.S2,m.S3,m.Total from StudentMain right join(select StudentId, Roll, Sec,Sum(iif(ExamType=4,Marks,0)) as P1,Sum(iif(ExamType=5,Marks,0)) as P2,Sum(iif(ExamType=6,Marks,0)) as P3, Sum(iif(ExamType=1,Marks,0)) as S1,Sum(iif(ExamType=2,Marks,0)) as S2,Sum(iif(ExamType=3,Marks,0)) as S3, (S1+S2+S3+P1+P2+P3) as Total from Marks where Class='".$_GET['element_1']."' and Sec='".$_GET['element_2']."'group by StudentId,Roll,Sec) as m on StudentMain.StudentId=m.StudentId order by m.Roll";}}}


$rs = odbc_exec($conn,$sql)or die (print odbc_errormsg());'

Access沒有CEILING函數,並且沒有訪問VBA函數的權限,您可以使用一些數學運算和Int函數。

嘗試使用此代碼。 我已經使用此邏輯來確定是否應四舍五入。 它假定標記始終為正:

Int(Marks)+IIf(Marks-Int(Marks)>0,1,0)

另外,我對SQL代碼進行了格式化,以使其更易於閱讀和維護。

$sql="select m.StudentId,StudentName, m.Roll,m.Sec,m.P1,m.P2,m.P3,m.S1,m.S2,m.S3,m.Total " .
"from StudentMain " .
"right join( " .
    "select StudentId, Roll, Sec,Sum(iif(ExamType=4,Marks,0)) as P1, " .
    "Sum(iif(ExamType=5,Int(Marks)+IIf(Marks-Int(Marks)>0,1,0),0)) as P2, " .
    "Sum(iif(ExamType=6,Int(Marks)+IIf(Marks-Int(Marks)>0,1,0),0)) as P3, " .
    "Sum(iif(ExamType=1,Int(Marks)+IIf(Marks-Int(Marks)>0,1,0),0)) as S1, " .
    "Sum(iif(ExamType=2,Int(Marks)+IIf(Marks-Int(Marks)>0,1,0),0)) as S2, " .
    "Sum(iif(ExamType=3,Int(Marks)+IIf(Marks-Int(Marks)>0,1,0),0)) as S3, " .
    "(S1+S2+S3+P1+P2+P3) as Total  " .
"from Marks w " .
"here Class='".$_GET['element_1']."'  " .
"and Sec='".$_GET['element_2']."' " .
"group by StudentId,Roll,Sec) as m  " .
"on StudentMain.StudentId=m.StudentId order by m.Roll";}}}"

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM