Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/62.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将pivot查询的自定义变量(@sql)提取到java的resultset_Java_Mysql - Fatal编程技术网

如何将pivot查询的自定义变量(@sql)提取到java的resultset

如何将pivot查询的自定义变量(@sql)提取到java的resultset,java,mysql,Java,Mysql,从查询中,我不知道如何检索java的resultset中的值。我想为用户显示考勤报告 BEGIN SET SESSION group_concat_max_len = 1000000000; SET @sql = NULL ; SELECT GROUP_CONCAT( DISTINCT CONCAT( 'max(CASE WHEN attendance.date = '', DATE_FORMAT(DATE, '%Y

从查询中,我不知道如何检索java的resultset中的值。我想为用户显示考勤报告

BEGIN
     SET SESSION group_concat_max_len = 1000000000;

      SET @sql = NULL ;
  SELECT
    GROUP_CONCAT(
      DISTINCT CONCAT(
        'max(CASE WHEN attendance.date = '',
        DATE_FORMAT(DATE, '%Y-%m-%d'),
        '' THEN coalesce(p.present, '') END) AS `',
        DATE_FORMAT(DATE, '%Y-%m-%d'),
        '`'
      )
    ) INTO @sql
  FROM
    calendar
  WHERE DATE >= '2015-01-01'
    AND DATE <= '2015-01-31' ;
  SET @sql = CONCAT(
    'SELECT attendance.present,attendance.user_id, ', @sql,'
        from
            (
              select c.date, a.user_id,a.present
              from calendar c
              cross join attendance a
            ) attendance
            left join attendance  p
              on attendance.user_id= p.user_id
              and attendance.date = p.attendance_date
           where attendance.date>='2015-01-01'
              and attendance.date <= '2015-01-31'
          group by attendance.user_id'
  ) ;
PREPARE stmt FROM @sql;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
END
调用resultset.getXXX()方法对应于您的输出。
ie)您需要三行数据类型int、string、sting,然后调用resultset的结果集。getInt(1)->给出整数值,resultset.getString(2)->给出字符串值,resultset.getString(3)->给出字符串值

你的错误是什么。?确保getXX()方法的索引和im在sql(用户定义变量)中计算第一个查询,并在下一个查询中调用'SELECT attention.present,attention.user_id',@sql',这样我就不知道如何检索值了
    String sp_query = "CALL AttendanceTrying()";


     try {
                    connection = DBUtil.getInstance().getConnection();

                    callableStatement = connection.prepareStatement(sp_query);
                    resultSet = callableStatement.executeQuery();

                    while(resultSet.next()) {

                     Attendance attendance = new Attendance();
                    /*here I don't know how to retrieve the values of procedure*/
                    }