0

こんにちは、次のクエリが返されます: 't' の列 1 に列名が指定されていません。

  public ArrayList<DocumentModel> findByDate(String code, String date, String dateFinal) throws GeneralException{
    ArrayList<DocumentModel> docs = new ArrayList<DocumentModel>();
    String d1 = date;
    String delimiter = "-";
    String[]temp = d1.split(delimiter);
    String[]temp2 = dateFinal.split("-");
    String num="";
    String alfa="";
    if (code.compareTo("")!=0){
        String[] c1 = code.split(",");
        num = c1[0];
        alfa = c1[1];
    }

    try{
        String sql = "SELECT max(issuedate),airlineOid as airlineNumericCode FROM Document  WHERE ";

        if (alfa.compareTo("")!=0) sql+=" airlineOid='"+alfa+"' and ";

        sql+=" convert(varchar,issueDate,112) >= '" + temp[0]+ temp[1] +"00'  AND convert(varchar,issueDate,112) < '"+ temp2[0]+ temp2[1] +"32' group by airlineOid";

        String sql2="select d.*,'"+num+"' as airlineNumericCode from document d,("+sql+") as t where t.airlineOid=d.airlineOid and t.issueDate=d.issueDate ORDER BY issueDate DESC ";

        ResultSet rs = this.executeQuery(sql2);
        while(rs.next()){
            docs.add((DocumentModel)this.build(rs));
        }
        if(docs != null){
            return docs;
        } else {
            return docs = null;
        }
    } catch (SQLException ex){
        throw new GeneralException(ex);
    }
}

名前を指定する場所がわかりません。どうもありがとうございました!よろしくイグナシオ

4

2 に答える 2

2

max(issuedate)次のように、列エイリアスを に追加する必要があります。

String sql = "SELECT max(issuedate) as MaxIssueDate, airlineOid as airlineNumericCode FROM Document  WHERE ";  
于 2012-05-11T18:17:21.313 に答える
0

これはあなたの問題だと思います....SQLでairline0idをairlineNumericCodeに名前変更します。次に、sql2 で、airline0id として参照しようとします。これを試して:

String sql = "SELECT max(issuedate) as issueDate,airlineOid as airlineNumericCode FROM Document  WHERE ";

...

String sql2="select d.*,'"+num+"' as airlineNumericCode from document d,("+sql+") as t where t.airlineNumericCode=d.airlineOid and t.issueDate=d.issueDate ORDER BY issueDate DESC ";
于 2012-05-11T18:20:51.753 に答える