数据结构
表<data_ydxx_s>
收货日期  datetime
运单编号  nvarchar
收货人    nvarchar
往来单位  nvarchar
终点站    nvarchar
货号      nvarchar
月结      money
回单结    money
未付中转费  money表<data_hwlb_s>
运单编号  nvarchar
货物名称  nvarchar表<data_fclb>
运单编号  nvarchar
发车日期  datetime我写的是SQL语句,只能列表出来,怎么写个汇总数啊,即要显示明细,又要显示金额的汇总SELECT 
data_ydxx_s.收货日期,
data_ydxx_s.收货人,
data_ydxx_s.终点站,
data_ydxx_s.货号,
data_hwlb_s.货物名称,
data_ydxx_s.月结,
data_ydxx_s.回单结,
(data_ydxx_s.回单结+data_ydxx_s.月结) as 应收款,
data_ydxx_s.未付中转费 as 应付款
FROM data_fclb INNER JOIN (data_ydxx_s INNER JOIN data_hwlb_s ON data_ydxx_s.运单编号=data_hwlb_s.运单编号)ON data_fclb.运单编号=data_ydxx_s.运单编号
WHERE (data_fclb.发车日期 BETWEEN '2007-06-09' AND '2007-06-30') AND (data_ydxx_s.月结<>0 OR data_ydxx_s.回单结<>0 OR data_ydxx_s.未付中转费<>0) AND data_ydxx_s.往来单位='大康'
order by data_ydxx_s.收货日期,data_ydxx_s.货号

解决方案 »

  1.   

    感觉你看看联机帮助的:ROLLUP 汇总数据
      

  2.   

    Try:
    SELECT 
    data_ydxx_s.收货日期,
    data_ydxx_s.收货人,
    data_ydxx_s.终点站,
    data_ydxx_s.货号,
    data_hwlb_s.货物名称,
    data_ydxx_s.月结,
    data_ydxx_s.回单结,
    (data_ydxx_s.回单结+data_ydxx_s.月结) as 应收款,
    data_ydxx_s.未付中转费 as 应付款
    FROM data_fclb INNER JOIN (data_ydxx_s INNER JOIN data_hwlb_s ON data_ydxx_s.运单编号=data_hwlb_s.运单编号)ON data_fclb.运单编号=data_ydxx_s.运单编号
    WHERE (data_fclb.发车日期 BETWEEN '2007-06-09' AND '2007-06-30') AND (data_ydxx_s.月结<>0 OR data_ydxx_s.回单结<>0 OR data_ydxx_s.未付中转费<>0) AND data_ydxx_s.往来单位='大康'
    group by data_ydxx_s.收货日期,
    data_ydxx_s.收货人,
    data_ydxx_s.终点站,
    data_ydxx_s.货号,
    data_hwlb_s.货物名称 WITH ROLLUP
      

  3.   

    改正:
    Try:
    SELECT 
    data_ydxx_s.收货日期,
    data_ydxx_s.收货人,
    data_ydxx_s.终点站,
    data_ydxx_s.货号,
    data_hwlb_s.货物名称,
    sum(data_ydxx_s.月结) as 月结,
    sum(data_ydxx_s.回单结) as 回单结,
    sum(data_ydxx_s.回单结+data_ydxx_s.月结) as 应收款,
    sum(data_ydxx_s.未付中转费) as 应付款
    FROM data_fclb INNER JOIN (data_ydxx_s INNER JOIN data_hwlb_s ON data_ydxx_s.运单编号=data_hwlb_s.运单编号)ON data_fclb.运单编号=data_ydxx_s.运单编号
    WHERE (data_fclb.发车日期 BETWEEN '2007-06-09' AND '2007-06-30') AND (data_ydxx_s.月结<>0 OR data_ydxx_s.回单结<>0 OR data_ydxx_s.未付中转费<>0) AND data_ydxx_s.往来单位='大康'
    group by data_ydxx_s.收货日期,
    data_ydxx_s.收货人,
    data_ydxx_s.终点站,
    data_ydxx_s.货号,
    data_hwlb_s.货物名称 WITH ROLLUP
      

  4.   

    你 用compute by 试一下
      

  5.   

    楼上的,就算你用 compute by 也是按日期分组汇总
      

  6.   

    --try
    SELECT 
    data_ydxx_s.收货日期,
    data_ydxx_s.收货人,
    data_ydxx_s.终点站,
    data_ydxx_s.货号,
    data_hwlb_s.货物名称,
    data_ydxx_s.月结,
    data_ydxx_s.回单结,
    (data_ydxx_s.回单结+data_ydxx_s.月结) as 应收款,
    data_ydxx_s.未付中转费 as 应付款
    FROM data_fclb INNER JOIN (data_ydxx_s INNER JOIN data_hwlb_s ON data_ydxx_s.运单编号=data_hwlb_s.运单编号)ON data_fclb.运单编号=data_ydxx_s.运单编号
    WHERE (data_fclb.发车日期 BETWEEN '2007-06-09' AND '2007-06-30') AND (data_ydxx_s.月结<>0 OR data_ydxx_s.回单结<>0 OR data_ydxx_s.未付中转费<>0) AND data_ydxx_s.往来单位='大康'
    order by data_ydxx_s.收货日期,data_ydxx_s.货号
    union all
    select
    null,
    '合计',
    '',
    '',
    '',
    sum(data_ydxx_s.月结),
    sum(data_ydxx_s.回单结),
    sum(data_ydxx_s.回单结+data_ydxx_s.月结),
    sum(data_ydxx_s.未付中转费)
    from data_fclb INNER JOIN (data_ydxx_s INNER JOIN data_hwlb_s ON data_ydxx_s.运单编号=data_hwlb_s.运单编号)ON data_fclb.运单编号=data_ydxx_s.运单编号
    WHERE (data_fclb.发车日期 BETWEEN '2007-06-09' AND '2007-06-30') AND (data_ydxx_s.月结<>0 OR data_ydxx_s.回单结<>0 OR data_ydxx_s.未付中转费<>0) AND data_ydxx_s.往来单位='大康'