进行数据统计分析时,要统计记录成这样
 单号,  名称, 价格,             成本,  数量      ,箱数,    时间
  1       a   10.00              9.00    10          3     2006-7-1
  2       a   10.00              9.00     9          3     2006-7-1
  合计    a   价格*数量*箱数     9.00  数量*箱数             
  3       b    9                 8.00     10      3    
 ........
 合计(是根据产品名称来分类的)我写了很长的一段代码,结果查出来只是符合条件的记录,并没有是我要的数据,晕呀,请教高手指点select a.po 訂單,a.customer_name_chi 供應商名稱,a.item_code 商品編碼,a.barcode 條形碼,a.description_chi 商品名稱, b.type 供應商類別,a.price 價格,a.qty 採購箱數,a.qty2 進貨箱數,a.qty_small 採購數量,a.qty_small2 進貨數量,a.date 採購日期 
from tbl_in a,tbl_product b where a.item_code=b.item_code  and a.last_date between '2006-3-11 11:05:27' and '2006-7-11 11:06:07' and  a.po= '000295' and b.type = 'CRF' 
union select a.po 訂單,a.customer_name_chi 供應商名稱,a.item_code 商品編碼,a.barcode 條形碼,a.description_chi 商品名稱,b.type 供應商類別,a.price,sum(a.qty),sum(a.qty2),sum(a.qty_small),sum(a.qty_small2),a.date 採購日期 
from tbl_in a,tbl_product b where a.item_code=b.item_code  and a.last_date between '2006-3-11 11:05:27' and '2006-7-11 11:06:07'  and  a.po= '000295' and b.type = 'CRF' 
group by a.price,a.po,a.customer_name_chi,a.item_code,a.barcode,a.description_chi,b.type,a.date

解决方案 »

  1.   

    例如,简单表 Inventory 中包含:Item                 Color                Quantity                   
    -------------------- -------------------- -------------------------- 
    Table                Blue                 124                        
    Table                Red                  223                        
    Chair                Blue                 101                        
    Chair                Red                  210                        下列查询将生成小计报表:SELECT CASE WHEN (GROUPING(Item) = 1) THEN 'ALL'
                ELSE ISNULL(Item, 'UNKNOWN')
           END AS Item,
           CASE WHEN (GROUPING(Color) = 1) THEN 'ALL'
                ELSE ISNULL(Color, 'UNKNOWN')
           END AS Color,
           SUM(Quantity) AS QtySum
    FROM Inventory
    GROUP BY Item, Color WITH ROLLUPItem                 Color                QtySum                     
    -------------------- -------------------- -------------------------- 
    Chair                Blue                 101.00                     
    Chair                Red                  210.00                     
    Chair                ALL                  311.00                     
    Table                Blue                 124.00                     
    Table                Red                  223.00                     
    Table                ALL                  347.00                     
    ALL                  ALL                  658.00                     
      

  2.   

    写的简单点select a.po ,a.customer_name_chi,a.item_code,a.description_chi,a.price,a.qty采购箱数,a.qty2  进货箱数,a.qty_small 采购数量,a.qty_small2 进货数量,a.date 采购日期 
    from tbl_in a,tbl_product b where a.item_code=b.item_code 
    union select a.po,a.customer_name_chi ,a.item_code ,a.barcode,a.description_chi,a.price,sum(a.qty),sum(a.qty2),sum(a.qty_small),sum(a.qty_small2),a.date 採購日期 
    from tbl_in a,tbl_product b where a.item_code=b.item_code   
    group by a.price,a.po,a.customer_name_chi,a.item_code,a.barcode,a.description_chi,b.type,a.date
      

  3.   

    SELECT a.po 訂單,
           a.customer_name_chi 供應商名稱,
           a.item_code 商品編碼,
           a.barcode 條形碼,
           a.description_chi 商品名稱,
           b.TYPE 供應商類別,
           a.price 價格,
           a.qty 採購箱數,
           a.qty2 進貨箱數,
           a.qty_small 採購數量,
           a.qty_small2 進貨數量,
           a.DATE 採購日期
    FROM   tbl_in a,
           tbl_product b
    WHERE  a.item_code = b.item_code
    AND a.last_date BETWEEN '2006-3-11 11:05:27'
                            AND '2006-7-11 11:06:07'
    AND a.po = '000295'
    AND b.TYPE = 'CRF'
    UNION ALL
    SELECT   a.po 訂單,
             a.customer_name_chi 供應商名稱,
             a.item_code 商品編碼,
             a.barcode 條形碼,
             a.description_chi 商品名稱,
             b.TYPE 供應商類別,
             a.price,
             SUM(a.qty),
             SUM(a.qty2),
             SUM(a.qty_small),
             SUM(a.qty_small2),
             a.DATE 採購日期
    FROM     tbl_in a,
             tbl_product b
    WHERE    a.item_code = b.item_code
      AND a.last_date BETWEEN '2006-3-11 11:05:27'
                              AND '2006-7-11 11:06:07'
      AND a.po = '000295'
      AND b.TYPE = 'CRF'
    GROUP BY a.price,
             a.po,
             a.customer_name_chi,
             a.item_code,
             a.barcode,
             a.description_chi,
             b.TYPE,
             a.DATE
      

  4.   

    bugchen888(臭虫) 谢谢你的代码,但好像和我一楼的代码是一样的:)
      

  5.   

    加了一個All,不過還是得不到你要的結果。:)jackinsh(Jack) ,你還是列出表結構和一些示例數據,再加上根據這些數據你要得到的結果吧。這樣比直接在你的語句的基礎上改,更容易理解一些。
      

  6.   

    数据库的记录的这样的:
    po customer_name_chi,item_code,barcode,description_chi,TYPE,price,qty,qty2,qty_small,qty_small2,date
    000295 A公司      0001 49999999  A产品 小商品 6.00 10 0 5 0  2006-07-11
    000295 A公司      0001 49999999  A产品 小商品 6.00  5  0 9 0 2006-07-06
    000295 A公司      0002 49999999  B产品 小商品 4.00  5  0 9 0 2006-07-06
    000295 A公司      0003 49999999  C产品 小商品 5.00  5  0 9 0 2006-07-11
    000295 A公司      0003 49999999  C产品 小商品 5.00  5  0 9 0 2006-07-06这是我想要的结果,
    po customer_name_chi,item_code,barcode,description_chi,TYPE,price,qty,qty2,qty_small,qty_small2,date
    000295 A公司      0001 49999999  A产品 小商品 6.00 10 0 5 0 2006-07-11
    000295 A公司      0001 49999999  A产品 小商品 6.00 5  0 9 0 2006-07-06
    合计   A公司      0001 49999999  A产品 小商品 570.00 95 0 0 0  
    PS:570=((10*5)+(5*9))*6.00
       95=10*5+5*9
    000295 A公司      0002 49999999  B产品 小商品 4.00  5  0 9 0 2006-07-06
    合计   A公司      0002 49999999  B产品 小商品 180.00 45  0 0 0 2006-07-06
    000295 A公司      0003 49999999  C产品 大商品 5.00  5  0 9 0 2006-07-11
    000295 A公司      0003 49999999  C产品 大商品 5.00  5  0 9 0 2006-07-06
    合计   A公司厅    0003 49999999  C产品 大商品 450   90  0  0 0 
    我现在正在用这个方法改,不知道行不行?
    USE pubs
    SELECT *
    FROM titles
    ORDER BY type
    COMPUTE avg(price) , SUM(advance)  BY type
      

  7.   

    Create Table TEST
    (po Char(6),
     customer_name_chi Nvarchar(10),
     item_code Char(4),
     barcode Char(9),
     description_chi Nvarchar(100),
     TYPE Nvarchar(10),
     price Numeric(10,2),
     qty Int,
     qty2 Int,
    qty_small Int,
    qty_small2 Int,
    [date] Varchar(10))
    Insert TEST Select '000295', N'A公司',      '0001', '49999999',  N'A产品', N'小商品', 6.00, 10, 0, 5, 0, '2006-07-11'
    Union All Select '000295', N'A公司',      '0001', '49999999',  N'A产品', N'小商品', 6.00,  5,  0, 9, 0, '2006-07-06'
    Union All Select '000295', N'A公司',      '0002', '49999999',  N'B产品', N'小商品', 4.00,  5,  0, 9, 0, '2006-07-06'
    Union All Select '000295', N'A公司',      '0003', '49999999',  N'C产品', N'小商品', 5.00,  5,  0, 9, 0, '2006-07-11'
    Union All Select '000295', N'A公司',      '0003', '49999999',  N'C产品', N'小商品', 5.00,  5,  0, 9, 0, '2006-07-06'
    GO
    Select * From(
    Select 
    (Case When Grouping(qty_small)=1 Then N'合计' Else po End) As po,
    customer_name_chi,
    item_code,
    barcode,
    description_chi,
    TYPE,
    SUM(qty*qty_small*price) As price,
    SUM(qty*qty_small)  As  qty,
    qty2,
    IsNull(qty_small,0)As qty_small,
    IsNull(qty_small2,0) As qty_small2,
    (Case When Grouping(qty_small)=1 Then '' Else [date] End) As [date]
    From
    TEST 
    Group By  po,customer_name_chi,item_code,barcode,description_chi,TYPE, qty2,qty_small,qty_small2,[date]
    With Rollup) A
    Where qty2 Is Not Null And [date] Is Not Null
    GO
    Drop Table TEST
    --Result
    /*
    po customer_name_chi item_code barcode description_chi TYPE price qty qty2 qty_small qty_small2 date
    000295 A公司 0001 49999999  A产品 小商品 300.00 50 0 5 0 2006-07-11
    000295 A公司 0001 49999999  A产品 小商品 270.00 45 0 9 0 2006-07-06
    合计 A公司 0001 49999999  A产品 小商品 570.00 95 0 0 0
    000295 A公司 0002 49999999  B产品 小商品 180.00 45 0 9 0 2006-07-06
    合计 A公司 0002 49999999  B产品 小商品 180.00 45 0 0 0
    000295 A公司 0003 49999999  C产品 小商品 225.00 45 0 9 0 2006-07-06
    000295 A公司 0003 49999999  C产品 小商品 225.00 45 0 9 0 2006-07-11
    合计 A公司 0003 49999999  C产品 小商品 450.00 90 0 0 0
    */