模仿与我的sql语句相同的逻辑,而不是使用cfscript/cfml?

jfgube3f  于 2021-07-24  发布在  Java
关注(0)|答案(1)|浏览(513)

我遇到了一个问题,从sql查询到api的使用。所以,我开始做我的sql语句正在做的事情。但由于某些原因,它正在检索所有的工作状态、工作级别和薪资等级。然而,我的预期结果应该是,当我从json或数据库中删除一个类似于0707的作业类时,它会在我的屏幕上显示缺少该作业类如果没有缺少任何作业类,那么它只会显示一个结构(空)。有人能告诉我我的代码哪里做错了吗?谢谢你的帮助。
sql语句:

select distinct job_class, PAY_GRADE 
from app.my_databaseFone 
where job_status like 'Active' 
order by job_class

代码:

<cffunction  name="my_api"
    access="private"
    description="my api data">
    
     <cfset qFullmyApi = fileRead("C:\Users\Desktop\myjson.json")>  
     <cfset jsonData = deserializeJSON(qFullmyApi) />  

     
      <cfscript>
     
     
        myAPIOutput = {};
     
     
    
      for (item in jsonData) {

 
        
        if (structKeyExists(myAPIOutput, item.jobStatus)) {
           
              matchedValue = false; 
                 for (i=1; i <= arrayLen(myAPIOutput[item.jobStatus]); i=i+1) {
                          
                   if (item.jobClass == myAPIOutput[item.jobStatus][i].job_class
                    && item.payGrade == myAPIOutput[item.jobStatus][i].pay_grade) {
    
                         matchedValue = true;
                            break;
                    
    
                   }
      
              }
               if (matchedValue == false) {
    
                   arrayAppend(myAPIOutput[item.jobStatus], {"JOB_CLASS":item.jobClass,
                   "PAY_GRADE": item.payGrade});
    
               }
            } else {
                
                myAPIOutput[item.jobStatus] = [{"JOB_CLASS":item.jobClass,
                 "PAY_GRADE": item.payGrade}]; 
           }
    
        }
            
        return myAPIOutput;
    
          
    
      </cfscript>
</cffunction>

vlju58qv

vlju58qv1#

在你的 WHERE 子句,您筛选 job_status like 'Active' (顺便说一句,不需要 like 这里,使用 = 但是在coldfusion代码中没有类似的过滤器。 myAPIOutput 将包括所有 job_status 类型不只是 Active 一个。只需显示 myAPIOutput['Active'] 这应该与您的sql查询相匹配。如果根本没有工作, myAPIOutput['Active'] 不存在

相关问题