进行数据统计分析时,要统计记录成这样
单号, 名称, 价格, 成本, 数量 ,箱数, 时间
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 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
解决方案 »
- 大家帮我看下这存储过程怎么修改 谢
- SOS!江湖救急!!两个表的联接合并问题
- 想起最开始学计算机时候的一个技巧,替换case when 在两个字段中选会最小的办法。
- DATEFORMAT问题请教
- SQL汇总查询求助?
- 存储过程调用存储过程(返回两个数据集),如何获得被调用的存储过程的返回的两个数据集
- 如何按时间顺序只显示我最后一条记录?
- 如何将存储过程xp_dirtree的返回结果存入一个表中?
- 如何存取二个服务器
- 日期格式是2006-4-10,我想建作业在到达2006-4-10日期时update一个状态值
- 如何用SQL语句判断在一个字段中是否包含某个字符?
- 那位能帮我把这个oracle语法的触发器转成ms-sql语法的?
-------------------- -------------------- --------------------------
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
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
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
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
(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
*/