weixin_43142925
ZHZHK001
2019-05-05 23:47

sql结果合并以及 语句结果出错

  • spring
  • oracle
  • struts
  • sql
  • eclipse

1、基础不够扎实,使用的句子是下面的结果

  <select id="relieveTotal" resultType="java.lang.Float">       
    SELECT SUM(SALES_AMOUNT) FROM TB_ORDER TR
        WHERE TR.USER_ID = #{userId}
        AND TR.SALES_TIME &gt;= TO_DATE(TO_CHAR(  
            (SELECT  MAX(W.WKH_MTIME) 
                FROM TB_WKH W 
                WHERE W.USER_ID = #{userId} 
                AND W.WKH_DIR = 0 
                GROUP BY W.USER_ID ) ,  
                'YYYY-MM-DD' ) , 'YYYY-MM-DD' ) 
  </select>


查询结果

如何可以加一列的数据(只有一个时间值,就是下面的部分代码的结果)

 SELECT MAX(W.WKH_MTIME) 
        FROM TB_WKH W 
        WHERE W.USER_ID = 2
        AND W.WKH_DIR = 0 
        GROUP BY W.USER_ID


问题一、
以上2端代码都可以得到结果,怎么把他们的结果合并起来,输出-----变成一个一行两列(小数和时间个一列)的结果出来,
哪个知道的帮帮忙


问题二、
前面的那一段代码,报错:Cause: java.sql.SQLDataException: ORA-01861: 文字与格式字符串不匹配
什么原因,知道的帮帮忙,我现在不知道怎么更改:
目前我只能采取变通的方法------变成resultMap的方法试一试

 <select id="relieveTotal" resultMap="total_result">        <!-- 更改返回的数据类型  -->
    SELECT SUM(SALES_AMOUNT)    SALES_AMOUNT   <!-- 用一个同类型的字段暂存 -->
    FROM TB_ORDER TR
        WHERE TR.USER_ID = #{userId}
        AND TR.SALES_TIME &gt;= TO_DATE(TO_CHAR(  
            (SELECT  MAX(W.WKH_MTIME) 
                FROM TB_WKH W 
                WHERE W.USER_ID = #{userId} 
                AND W.WKH_DIR = 0 
                GROUP BY W.USER_ID ) ,  
                'YYYY-MM-DD' ) , 'YYYY-MM-DD' ) 
  </select>

第一个回答的 报错了
ORA-00937: 不是单组分组函数
00937. 00000 - "not a single-group group function"
*Cause:

*Action:

  • 点赞
  • 回答
  • 收藏
  • 复制链接分享

1条回答

为你推荐