2016-05-22 3 views
-1

Мой подготовленный оператор производит следующее сообщение об ошибке в журнале «SQLException в getVenturerSectDtls: java.sql.SQLException: Колонка„километры“не найденSQL работает, однако подготовленный оператор не

Подготовленное заявление:.

String selectQry = ("SELECT cdID, surname, firstName, dob, archived, scoutNo, grpName, startDate, endDate, SUM(kilometres), SUM(nights) from (" + 
      "SELECT at_cub_details.cd_id as cdID, at_cub_details.cd_surname as surname, at_cub_details.cd_first_name as firstName," + 
       " at_cub_details.cd_dob as dob, at_cub_details.cd_archived as archived, at_cub_details.cd_scout_no as scoutNo, " + 
       " at_group.grp_name as grpName, " + 
       " at_section_details.sd_start_date as startDate, at_section_details.sd_end_date as endDate, " + 
       " null as kilometres, null as nights " + 
      " FROM at_cub_details, at_account_group, at_group, at_section_details " + 
      " WHERE at_account_group.acc_id = ? " + 
       " AND at_account_group.grp_id = at_cub_details.grp_id " + 
       " AND at_cub_details.grp_id = at_group.grp_id " + 
       " AND at_cub_details.cd_id = at_section_details.cd_id " + 
       " AND at_section_details.sd_start_date = (SELECT MIN(section.sd_start_date) " + 
                  " FROM at_section_details section " + 
                  " WHERE section.cd_id = at_cub_details.cd_id " + 
                   " AND section.sd_section = at_group.grp_section) " + 

    " UNION ALL " + 

    " SELECT at_cub_details.cd_id as cdID, at_cub_details.cd_surname as surname, at_cub_details.cd_first_name as firstName," + 
     " null as dob, null as archived, null as scoutNo, " + 
     " null as grpName, " + 
     " null as startDate, null as endDate, " + 
     " SUM(hr_kilometres) as kilometres, SUM(hr_nights_under_canvas) as nights " + 
    " FROM at_account_group, at_group, at_section_details, at_cub_details, at_hiking_record " + 
    " WHERE at_account_group.acc_id = ? " + 
     " AND at_account_group.grp_id = at_cub_details.grp_id " + 
     " AND at_cub_details.grp_id = at_group.grp_id " + 
     " AND at_cub_details.cd_id = at_section_details.cd_id " + 
     " AND at_section_details.sd_start_date = (SELECT MIN(section.sd_start_date) " + 
                " FROM at_section_details section " + 
                " WHERE section.cd_id = at_cub_details.cd_id " + 
                 " AND section.sd_section = at_group.grp_section) " + 
     " AND at_cub_details.cd_id = at_hiking_record.cd_id " + 
     " AND at_hiking_record.hr_start_date > (SELECT MIN(section2.sd_start_date) " + 
                   " FROM at_section_details section2 " + 
                   " WHERE section2.cd_id = at_cub_details.cd_id " + 
                    " AND section2.sd_section = at_group.grp_section) " + 
    " GROUP BY at_cub_details.cd_id " + 

    " UNION ALL " + 

    " SELECT at_cub_details.cd_id as cdID, at_cub_details.cd_surname as surname, at_cub_details.cd_first_name as firstName," + 
     " null as dob, null as archived, null as scoutNo, " + 
     " null as grpName, " + 
     " null as startDate, null as endDate, " + 
     " null as kilometres, SUM(event_nights_canvas) as nights " + 
    " FROM at_account_group, at_group, at_section_details, at_cub_details, at_event " + 
    " WHERE at_account_group.acc_id = ? " + 
     " AND at_account_group.grp_id = at_cub_details.grp_id " + 
     " AND at_cub_details.grp_id = at_group.grp_id " + 
     " AND at_cub_details.cd_id = at_section_details.cd_id " + 
     " AND at_section_details.sd_start_date = (SELECT MIN(section.sd_start_date) " + 
                " FROM at_section_details section " + 
                " WHERE section.cd_id = at_cub_details.cd_id " + 
                 " AND section.sd_section = at_group.grp_section) " + 
     " AND at_cub_details.cd_id = at_event.cd_id " + 
     " AND at_event.event_date_start > (SELECT MIN(section2.sd_start_date) " + 
                   " FROM at_section_details section2 " + 
                   " WHERE section2.cd_id = at_cub_details.cd_id " + 
                    " AND section2.sd_section = at_group.grp_section) " + 
     " GROUP BY at_cub_details.cd_id " + 
    ") a " + 
     "GROUP BY surname, firstName;"); 

Так что я беру инструкцию SELECT и вставляю ее в MS Word и заменяю все «и + на пробел и? с 30 (значение передается с клиентской стороны), а затем мимо результата в phpMyAdmin SQL, и оно запускает и возвращает ожидаемые результаты.

Я использую Eclipse, GWT, java, mySQL.

Итак, что не так с подготовленным заявлением, пожалуйста?

Отредактированный код я использую в PhpMyAdmin является:

SELECT cdID, surname, firstName, dob, archived, scoutNo, grpName, startDate, endDate, SUM(kilometres), SUM(nights) from ( 
       SELECT at_cub_details.cd_id as cdID, at_cub_details.cd_surname as surname, at_cub_details.cd_first_name as firstName, 
       at_cub_details.cd_dob as dob, at_cub_details.cd_archived as archived, at_cub_details.cd_scout_no as scoutNo, 
       at_group.grp_name as grpName, 
       at_section_details.sd_start_date as startDate, at_section_details.sd_end_date as endDate, 
       null as kilometres, null as nights 
       FROM at_cub_details, at_account_group, at_group, at_section_details 
       WHERE at_account_group.acc_id = 30 
        AND at_account_group.grp_id = at_cub_details.grp_id 
        AND at_cub_details.grp_id = at_group.grp_id 
        AND at_cub_details.cd_id = at_section_details.cd_id 
        AND at_section_details.sd_start_date = (SELECT MIN(section.sd_start_date) 
                   FROM at_section_details section 
                   WHERE section.cd_id = at_cub_details.cd_id 
                    AND section.sd_section = at_group.grp_section) 

    UNION ALL 

    SELECT at_cub_details.cd_id as cdID, at_cub_details.cd_surname as surname, at_cub_details.cd_first_name as firstName, 
    null as dob, null as archived, null as scoutNo, 
    null as grpName, 
    null as startDate, null as endDate, 
    SUM(hr_kilometres) as kilometres, SUM(hr_nights_under_canvas) as nights  
      FROM at_account_group, at_group, at_section_details, at_cub_details, at_hiking_record 
      WHERE at_account_group.acc_id = 30 
       AND at_account_group.grp_id = at_cub_details.grp_id 
       AND at_cub_details.grp_id = at_group.grp_id 
       AND at_cub_details.cd_id = at_section_details.cd_id 
       AND at_section_details.sd_start_date = (SELECT MIN(section.sd_start_date) 
                  FROM at_section_details section 
                  WHERE section.cd_id = at_cub_details.cd_id 
                   AND section.sd_section = at_group.grp_section) 
       AND at_cub_details.cd_id = at_hiking_record.cd_id 
       AND at_hiking_record.hr_start_date > (SELECT MIN(section2.sd_start_date) 
                     FROM at_section_details section2 
                     WHERE section2.cd_id = at_cub_details.cd_id 
                      AND section2.sd_section = at_group.grp_section) 
      GROUP BY at_cub_details.cd_id 

    UNION ALL 

    SELECT at_cub_details.cd_id as cdID, at_cub_details.cd_surname as surname, at_cub_details.cd_first_name as firstName, 
    null as dob, null as archived, null as scoutNo, 
    null as grpName, 
    null as startDate, null as endDate, 
    null as kilometres, SUM(event_nights_canvas) as nights 
      FROM at_account_group, at_group, at_section_details, at_cub_details, at_event 
      WHERE at_account_group.acc_id = 30 
       AND at_account_group.grp_id = at_cub_details.grp_id 
       AND at_cub_details.grp_id = at_group.grp_id 
       AND at_cub_details.cd_id = at_section_details.cd_id 
       AND at_section_details.sd_start_date = (SELECT MIN(section.sd_start_date) 
                  FROM at_section_details section 
                  WHERE section.cd_id = at_cub_details.cd_id 
                   AND section.sd_section = at_group.grp_section) 
       AND at_cub_details.cd_id = at_event.cd_id 
       AND at_event.event_date_start > (SELECT MIN(section2.sd_start_date) 
                     FROM at_section_details section2 
                     WHERE section2.cd_id = at_cub_details.cd_id 
                      AND section2.sd_section = at_group.grp_section) 
      GROUP BY at_cub_details.cd_id 
      ) a 
       GROUP BY surname, firstName; 
+0

это может быть орфография: километров? поскольку он работает в phpMyAdmin, это не должно быть так, поэтому вы также можете вставить свой запрос phpMyAdmin, который даст некоторые подсказки. – Saky

+0

Спасибо, Saky, я добавил код, который я использую, и работает в phpMyAdmin. – Glyn

ответ

0

В первом выберите изменения заявления "SUM (км), SUM (ночи)" на «SUM (км) в километрах, SUM (ночи) как ночи ».