CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  MS-SQL Server >  基础类

数据库小计问题

楼主kugoo2338903(咫尺天涯,网罗人生)2005-06-03 10:40:57 在 MS-SQL Server / 基础类 提问

select   FItemID=case   when   FName   is   null   then   '小计'   else   FItemID   end   ,FName,t1.FDate   ,  
  FBillNo,FUnit,FQCAux,FQCPrice   ,FQCAmount,  
  FInAux   ,FInPrice   ,FInAmount,  
  FOutAux   ,FOutPrice,FOutAmount,FQMAux   ,FQMPrice   ,FQMAmount      
  from    
  (select   FItemID,FName,FDate,FBillNo,FUnit,sum(FQCAux),FQCPrice,sum(FQCAmount),sum(FInAux),FInPrice,sum(FInAmount),sum(FOutAux),FOutPrice,sum(FOutAmount),sum(FQMAux),FQMPrice,sum(FQMAmount)  
  from   #UFOJYB    
  group   by   FItemID,FName,FDate,FBillNo,FUnit,FQCPrice,FInPrice,FOutPrice,FQMPrice  
  with   rollup  
  )   t1  
  where   FItemID   is   not   null   and   FName   is   not   null  
  order   by   FItemID  
  --union   all  
  --select   '合计','','','','','','','','','','','','','','','',''  
  --from   #UFOJYB  
  问题点数:50、回复次数:8Top

1 楼kugoo2338903(咫尺天涯,网罗人生)回复于 2005-06-03 10:42:08 得分 0

运行提示没有指定列Top

2 楼zjcxc(邹建)回复于 2005-06-03 10:48:03 得分 50

select   FItemID=case   when   FName   is   null   then   '小计'   else   FItemID   end   ,  
  FName,  
  t1.FDate   ,  
  FBillNo,  
  FUnit,  
  FQCAux,  
  FQCPrice   ,  
  FQCAmount,  
  FInAux   ,FInPrice   ,FInAmount,  
  FOutAux   ,FOutPrice,FOutAmount,FQMAux   ,FQMPrice   ,FQMAmount      
  from   (  
  select   FItemID,FName,FDate,FBillNo,FUnit,  
  sum(FQCAux)   FQCAux,  
  FQCPrice,  
  sum(FQCAmount)   FQCAmount,  
  sum(FInAux)   FInAux,  
  FInPrice,  
  sum(FInAmount)   FInAmount,  
  sum(FOutAux)   FOutAux,  
  FOutPrice,  
  sum(FOutAmount)   FOutAmount,  
  sum(FQMAux)   FQMAux,  
  FQMPrice,  
  sum(FQMAmount)   FQMAmount  
  from   #UFOJYB    
  group   by   FItemID,FName,FDate,FBillNo,FUnit,FQCPrice,FInPrice,FOutPrice,FQMPrice  
  with   rollup  
  )   t1  
  where   FItemID   is   not   null   and   FName   is   not   null  
  order   by   FItemID  
  --union   all  
  --select   '合计','','','','','','','','','','','','','','','',''  
  --from   #UFOJYB  
   
  Top

3 楼kugoo2338903(咫尺天涯,网罗人生)回复于 2005-06-03 10:53:06 得分 0

邹兄,我试了一下,发现没有小计了,而且数据有很多重复的记录Top

4 楼kugoo2338903(咫尺天涯,网罗人生)回复于 2005-06-03 10:56:45 得分 0

--select   *   from   icstockbill   where   FTranType='10'   or   FTranType='29'  
  create   table   #JYB   (  
  FItemID   varchar   (20),  
  FName   varchar   (150),  
  FDate   datetime,  
  FBillNo   varchar   (100),  
  FUnit   varchar   (50),  
   
  --FQCAux   integer   default(0),  
  --FQCPrice   real   default(0),  
  --FQCAmount   real   default(0),  
  ---------------期初  
  FInAux   integer   default(0),  
  FInPrice   real   default(0),  
  FInAmount   real   default(0),--SONY   PCG-R505GL    
  ---------------本期收入  
  FOutAux   integer   default(0),  
  FOutPrice   real   default(0),  
  FOutAmount   real   default(0)  
  ---------------本期发出    
  )  
  ------------------------------------------------------  
  create   table   #UFOJYB   (  
  FItemID   varchar   (20),  
  FName   varchar   (150),  
  FDate   datetime,  
  FBillNo   varchar   (100),  
  FUnit   varchar   (50),  
   
  FQCAux   integer   default(0),  
  FQCPrice   real   default(0),  
  FQCAmount   real   default(0),  
  ---------------期初  
  FInAux   integer   default(0),  
  FInPrice   real   default(0),  
  FInAmount   real   default(0),--SONY   PCG-R505GL    
  ---------------本期收入  
  FOutAux   integer   default(0),  
  FOutPrice   real   default(0),  
  FOutAmount   real   default(0),  
  ---------------本期发出    
   
  FQMAux   integer   default(0),  
  FQMPrice   real   default(0),  
  FQMAmount   real   default(0)  
  ---------------期末  
  )  
  -----------------------------------------------------  
  create   table   #QC   (  
  FItemID   varchar   (20),  
  FQCAux   integer   ,  
  FQCPrice   real   default(0),  
  FQCAmount   real   default(0)  
  )  
  ----------------------物料的期初余额-----------------------  
  insert   into   #QC     (FItemID,   FQCAux,   FQCPrice,   FQCAmount)  
  Select   t1.Fnumber   As   FItemID   ,Sum(u1.FBegQty)   As   FBegQty,  
  (Case   Sum(u1.FBegQty)   When   0   Then   0   Else     (Sum(u1.FBegBal)-Sum(u1.FBegDiff))/Sum(u1.FBegQty)   End)   As   FBegPrice,  
  Sum(u1.FBegBal)   As   FBegAmount   From   ICInvBal   u1    
  Inner   Join   t_ICItem   t1   On   u1.FItemID=t1.FItemID    
  Left   Join   t_Stock   t2   On   u1.FStockID=t2.FItemID    
  Left   Join   t_StockPlace   t11   On   u1.FStockPlaceID=t11.FSPID    
  Where   u1.FYear=2004   And   u1.FPeriod=1   --会计期间  
  And   Not   (u1.FBegQty   =   0   And   u1.FBegBal   =   0)    
  Group   By   t1.Fnumber   Order   By   t1.Fnumber  
   
  ----------------------物料的期初余额-----------------------  
   
  ----------------------本期收入-----------------------  
  insert   into   #JYB(FItemID,   FName,FDate,   FBillNo,   FUnit,   FInAux,   FInPrice,   FInAmount)  
  select   t3.FNumber   as   物料代码,t3.FName   as   物料名称,t1.FDate   as   日期,  
  t1.FBillNo   as   单据号,t4.FName   as   单位,      
  t2.FAuxPrice   as   收入数量,t2.FPrice   as   收入单价,t2.FAmount   as   收入金额  
  from   icstockbill   t1    
  Left   Join   ICStockBillEntry   t2   on   t1.FInterID=t2.FInterID--出入库单据分录表  
  Left   Join   T_ICItem   t3   on   t2.FItemID=t3.FItemID--物料表  
  Left   Join   T_MeasureUnit   t4   on   t3.FUnitGroupID=t4.FUnitGroupID--计量单位表  
  where   t1.FTranType='10'  
  ----------------------本期收入-----------------------  
   
  ----------------------本期发出-----------------------  
  insert   into   #JYB(FItemID,   FName,FDate,   FBillNo,   FUnit,   FOutAux,   FOutPrice,   FOutAmount)  
  select   t3.FNumber   as   物料代码,t3.FName   as   物料名称,t1.FDate   as   日期,  
  t1.FBillNo   as   单据号,t4.FName   as   单位,      
  t2.FAuxPrice   as   发出数量,t2.FPrice   as   发出单价,t2.FAmount   as   发出金额  
  from   icstockbill   t1    
  Left   Join   ICStockBillEntry   t2   on   t1.FInterID=t2.FInterID--出入库单据分录表  
  Left   Join   T_ICItem   t3   on   t2.FItemID=t3.FItemID--物料表  
  Left   Join   T_MeasureUnit   t4   on   t3.FUnitGroupID=t4.FUnitGroupID--计量单位表  
  where   t1.FTranType='29'  
  ----------------------本期发出-----------------------  
   
  ----------------------物料的期初余额-----------------------  
  insert   into   #UFOJYB  
  select   t1.FItemID   as   物料代码,t1.FName   as   物料名称,t1.FDate   日期,  
  t1.FBillNo   as   单据号码,t1.FUnit   as   单位,t2.FQCAux   as   期初数量,  
  t2.FQCPrice   as   期初单价,t2.FQCAmount   as   期初金额,  
  t1.FInAux   as   本期收入数量,t1.FInPrice   as   本期收入单价,t1.FInAmount   as   本期收入金额,  
  t1.FOutAux   as   本期发出数量,t1.FOutPrice   as   本期发出单价,t1.FOutAmount   as   本期发出金额,  
  isnull(t2.FQCAux,0)   +   isnull(t1.FInAux,0)   -   isnull(t1.FOutAux,0)   as   期末数量,  
  (isnull(t2.FQCAmount,0)   +   isnull(t1.FInAmount,0)   -   isnull(t1.FOutAmount,0))   /   (isnull(t2.FQCAux,0)   +   isnull(t1.FInAux,0)   -   isnull(t1.FOutAux,0))   as   期末单价,  
  isnull(t2.FQCAmount,0)   +   isnull(t1.FInAmount,0)   -   isnull(t1.FOutAmount,0)   as   期末金额  
  from   #JYB   t1  
  INNER   JOIN   #QC   t2  
  ON   t2.FItemID   =   t1.FItemID  
  order   by   t1.FItemID,   t1.FDate  
  --group   by   WITH   CUBE  
  --COMPUTE   SUM(FInAux),   SUM(FOutAux)   BY   t1.FItemID  
  ----------------------物料的期初余额-----------------------  
  /*  
  select   FItemID=case   when   FName   is   null   then   '小计'   else   FItemID   end   ,FName   as   物料名称,t1.FDate   日期,  
  FBillNo   as   单据号码,FUnit   as   单位,FQCAux   as   期初数量,  
  FQCPrice   as   期初单价,FQCAmount   as   期初金额,  
  FInAux   as   本期收入数量,FInPrice   as   本期收入单价,FInAmount   as   本期收入金额,  
  FOutAux   as   本期发出数量,FOutPrice   as   本期发出单价,FOutAmount   as   本期发出金额,  
  FQMAux   期末数量,FQMPrice   as   期末单价,FQMAmount   期末金额    
  */  
  select   FItemID=case   when   FName   is   null   then   '小计'   else   FItemID   end   ,FName,t1.FDate   ,  
  FBillNo,FUnit,FQCAux,FQCPrice   ,FQCAmount,  
  FInAux   ,FInPrice   ,FInAmount,  
  FOutAux   ,FOutPrice,FOutAmount,FQMAux   ,FQMPrice   ,FQMAmount      
  from    
  (select   FItemID,FName,FDate,FBillNo,FUnit,sum(FQCAux),FQCPrice,sum(FQCAmount),sum(FInAux),FInPrice,sum(FInAmount),sum(FOutAux),FOutPrice,sum(FOutAmount),sum(FQMAux),FQMPrice,sum(FQMAmount)  
  from   #UFOJYB    
  group   by   FItemID,FName,FDate,FBillNo,FUnit,FQCPrice,FInPrice,FOutPrice,FQMPrice  
  with   rollup  
  )   t1  
  where   FItemID   is   not   null   and   FName   is   not   null  
  --union   all  
  --select   '合计','','','','','','','','','','','','','','','',''  
  --from   #UFOJYB  
    order   by   FItemID  
   
  --select   *   from   #ufojyb  
  drop   table   #QC  
  drop   table   #JYB  
  drop   table   #UFOJYB  
  这是我的存储过程Top

5 楼zjcxc(邹建)回复于 2005-06-03 11:58:47 得分 0

举数据说明你的要求.Top

6 楼kugoo2338903(咫尺天涯,网罗人生)回复于 2005-06-03 12:24:25 得分 0

编号             名称                 日期             单据号     期初数量     本期收入数量   本期发出数量     期末数量          
    001       电脑主机(海蓝)   2004-01-15       001             5               1988                     0                         1993  
    001       电脑主机(海蓝)   2004-01-20       002             5                   0                       100                     1893  
    小计                                                                               5               1988                     100                     1893  
    002       电脑主机(黑色)   2004-01-15       001             7               1988                     0                         1995  
    小计                                                                               7               1988                     0                         1995  
  Top

7 楼kugoo2338903(咫尺天涯,网罗人生)回复于 2005-06-03 12:26:29 得分 0

编号       名称                 日期             单据号     期初数量     本期收入数量   本期发出数量     期末数量          
    001   电脑主机(海蓝)2004-01-15     001         5               1988                     0                         1993  
    001   电脑主机(海蓝)2004-01-20     002         5                   0                       100                     1893  
    小计                                                                   5               1988                     100                     1893  
    002   电脑主机(黑色)2004-01-15     001         7               1988                     0                         1995  
    小计                                                                   7               1988                     0                         1995Top

8 楼kugoo2338903(咫尺天涯,网罗人生)回复于 2005-06-03 13:57:33 得分 0

邹大侠,在吗?Top

相关问题

  • VB$数据库
  • 数据库???
  • informix 数据库
  • vb数据库!
  • 数据库and ComboBox?
  • 数据库ado
  • MDB数据库
  • 数据库
  • SQL 数据库
  • sql数据库

关键词

  • null
  • fitemid
  • 小计
  • fbillno
  • finprice
  • fqcprice
  • foutprice
  • funit
  • t1
  • fdate

得分解答快速导航

  • 帖主:kugoo2338903
  • zjcxc

相关链接

  • SQL Server类图书

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo