RT
在线等,谢谢。oracle 查询

解决方案 »

  1.   

    使用分析函数over,比如
    select col1,col2,col3, sum(col4) over(partition by col5) from table1;
      

  2.   

    这个函数的具体怎么用呢?
    postgresql有这个函数吗,
      

  3.   

    SELECT
    mba.doc."name",
    f_node_fullname(mba.doc.nodeid, '.') AS nodename,
    mba.subtype."name" AS subtypename,
    mba.subtype_ivc.staxrate AS staxrate,
    Sum(mba.docmaterial.qty) AS qty,
    mba.doc_qspo.cur) AS cur,
    Sum(mba.docmaterial.qty*mba.qspo_item.price) AS nontaxpric,
    mba.qspo_item.ext AS ext,
    mba.rcs_material.price0 price0
    FROM
    mba.doc
    INNER JOIN mba.docmaterial ON mba.doc.idx = mba.docmaterial.docseqid
    INNER JOIN mba.subtype ON mba.doc.subtypeid = mba.subtype.subtypeid
    INNER JOIN mba.doc_qspo ON mba.doc.idx = mba.doc_qspo.docseqid
    INNER JOIN mba.subtype_ivc ON mba.doc_qspo.ivctypeid = mba.subtype_ivc.subtypeid
    INNER JOIN mba.qspo_item ON mba.docmaterial.itemid = mba.qspo_item.itemid
    INNER JOIN mba.rcs ON mba.doc."owner" = mba.rcs.idx
    INNER JOIN mba.rcs_material ON mba.docmaterial.pno = mba.rcs_material.pno
    WHERE 1=1
    and mba.doc."name" = 'S130806105'
    GROUP BY mba.doc."name"
    我这条语句 只想对mba.doc.name分组 ,如何修改?
      

  4.   

    只对name分组求sum对吧,去掉句尾的group by,在字段里面有sum的字段后面加上over就可以了。Sum(mba.docmaterial.qty) AS qty
    改为
    Sum(mba.docmaterial.qty) over(partition by mba.doc.name)AS qtypostgresql中也有这个函数,google一下就知道了。