存储过程问题
CREATE PROCEDURE queryjxchuizong  @bianhao varchar(20)  , @cangku varchar(30) ,@supplyman varchar(30), @instorebegin varchar(20), @instoreend varchar(20) , @outstorebegin varchar(20) ,@outstoreend varchar(20)
AS
beginselect fgoods_id,sum(fnum+salenum) as innum,sum(fnum*inprice+salenum*inprice) AS INMONEY,0 AS OUTNUM,0 AS OUTMONEY  --INTO #DDD --sum(salenum),sum(salenum*saleprice)
from t_stock_detail where fstock_id=35 and (convert(VARCHAR,indate,121) BETWEEN '2008-11-01' AND '2008-11-20')   group by fgoods_idselect fgoods_id,0 as innum,0 AS INMONEY,sum(salenum)  AS OUTNUM,sum(salenum*saleprice)  AS OUTMONEY --sum(salenum),sum(salenum*saleprice)
from t_stock_detail where fstock_id=1 and (convert(VARCHAR,SALEDATE,121) BETWEEN '2008-11-01' AND '2008-11-20')   group by fgoods_idend
GO我想把以上两个select(查询结果为同样的表结构)合并在一个表里要加什么语法么? 假如第一个查询结果是3条记录 第二个结果也是3条 想合并在一个表中6条记录

解决方案 »

  1.   

    select fgoods_id,sum(fnum+salenum) as innum,sum(fnum*inprice+salenum*inprice) AS INMONEY,0 AS OUTNUM,0 AS OUTMONEY  --INTO #DDD --sum(salenum),sum(salenum*saleprice)
    from t_stock_detail where fstock_id=35 and (convert(VARCHAR,indate,121) BETWEEN '2008-11-01' AND '2008-11-20')  group by fgoods_id
    union all
    select fgoods_id,0 as innum,0 AS INMONEY,sum(salenum)  AS OUTNUM,sum(salenum*saleprice)  AS OUTMONEY --sum(salenum),sum(salenum*saleprice)
    from t_stock_detail where fstock_id=1 and (convert(VARCHAR,SALEDATE,121) BETWEEN '2008-11-01' AND '2008-11-20')  group by fgoods_id
      

  2.   

    CREATE PROCEDURE queryjxchuizong  @bianhao varchar(20)  , @cangku varchar(30) ,@supplyman varchar(30), @instorebegin varchar(20), @instoreend varchar(20) , @outstorebegin varchar(20) ,@outstoreend varchar(20) 
    AS 
    begin select fgoods_id,sum(fnum+salenum) as innum,sum(fnum*inprice+salenum*inprice) AS INMONEY,0 AS OUTNUM,0 AS OUTMONEY  --INTO #DDD --sum(salenum),sum(salenum*saleprice) 
    from t_stock_detail where fstock_id=35 and (convert(VARCHAR,indate,121) BETWEEN '2008-11-01' AND '2008-11-20')  group by fgoods_id 
    union all
    select fgoods_id,0 as innum,0 AS INMONEY,sum(salenum)  AS OUTNUM,sum(salenum*saleprice)  AS OUTMONEY --sum(salenum),sum(salenum*saleprice) 
    from t_stock_detail where fstock_id=1 and (convert(VARCHAR,SALEDATE,121) BETWEEN '2008-11-01' AND '2008-11-20')  group by fgoods_id end 
    GO 
      

  3.   

    两条语句中间加个union all就可以了
      

  4.   

    union  all
    不去重复数据
      

  5.   

    综上所述:union  all 是不去重复数据,两个结果集里如果有相同的,则全部显示,结果中会有两条完全一样的数据出现.union      是不显示重复数据,两个结果集里如果有相同的 只查询出一条数据来.
      

  6.   


    union all 合并所有表结构相同的记录....
    union :合并所有表结构相同的记录,并去掉重复的...