SQL如何实现合计功能

asd620620 2014-08-23 10:54:19
FIQty                                   FNumber                                                                          采购价格                   单位材料费                  单位加工费                  单重                     加工费                    估价                     配件费用                   B.QT费用                 B.QZ费用
--------------------------------------- -------------------------------------------------------------------------------- ---------------------- ---------------------- ---------------------- ---------------------- ---------------------- ---------------------- ---------------------- ---------------------- ----------------------
1.0000000000 B.QT.AM.BJ.00204 0 0 0 0.2 1.4 0 0 2.3419376 0
1.0000000000 B.QZ.AM.BJ.00200 0 0 0 0 1.25 0 0 0 4.434626
1.0000000000 B.QZ.AM.RM.00009 75.2137 0 0 0 0 0 0 0 75.2137
1.0000000000 M.QT.AM.BJ.00057 0 3.6752 0 0.188 0.251 0 0 0 0
1.0000000000 M.QZ.AM.BJ.00101 0 3.6752 3.2479 0.46 0 0 0 0 0
1.0000000000 P.BJ.CX.00003 0.019542792 0 0 0.00228 0 0 0.019542792 0 0
1.0000000000 P.BJ.KC.00006 0.1726 0 0 0.00867 0 0 0.1726 0 0
1.0000000000 P.BJ.YZ.00001 0.0773 0 0 0 0 0 0.0773 0 0
1.0000000000 P.CY.SG.00013 0.192 0 0 0.017 0.0255 0 0.192 0 0
1.0000000000 P.SL.FC.00005 0 0 0 0 0 0 0 0 0
1.0000000000 P.SL.QB.00041 0.2684 0 0 0 0 0 0.2684 0 0
1.0000000000 P.XJ.FT.00046 0.335 0 0 0 0 0 0.335 0 0
1.0000000000 X.QZ.AM.BJ.00001 0 0 0 0 0 0 0 0 0
3.0000000000 P.BJ.MD.00003 0.2762 0 0 0 0 0 0.8286 0 0

现在有这个表格,我希望显示配件,B.QT费用,B.QZ用费 分别的合计,然后在把三个类别的在算总计,请问在SQL中要如何实现
...全文
1063 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
line_us 2014-08-25
  • 打赏
  • 举报
回复
引用 14 楼 qxyywy 的回复:
你这个合计为什么非要在SQL里处理呢?程序里不行吗 不要把什么东西都往SQL里丢
或许是好主意。
qxyywy 2014-08-25
  • 打赏
  • 举报
回复
你这个合计为什么非要在SQL里处理呢?程序里不行吗 不要把什么东西都往SQL里丢
jia_pu8 2014-08-25
  • 打赏
  • 举报
回复
asd620620 2014-08-23
  • 打赏
  • 举报
回复
引用 8 楼 reenjie 的回复:
那下面的sql行不行? select FItemID,sum(配件费用) as 配件费用总和,sum(B.QT费用) as B.QT费用总和,sum(B.QZ费用) as B.QZ费用总和,sum(配件费用)+sum(B.QT费用)+sum(B.QZ费用) as 费用总和 from tablename group by FItemID
我也查了点资料好像说可以用 with rollup 这样函数来计算小算或合计,但是我不怎么会用, 可以用这个函数实现不
asd620620 2014-08-23
  • 打赏
  • 举报
回复
引用 8 楼 reenjie 的回复:
那下面的sql行不行? select FItemID,sum(配件费用) as 配件费用总和,sum(B.QT费用) as B.QT费用总和,sum(B.QZ费用) as B.QZ费用总和,sum(配件费用)+sum(B.QT费用)+sum(B.QZ费用) as 费用总和 from tablename group by FItemID
如果这样写,明细是不是就没有了?现在主要是想能显示明细,也可以显示合计,方便核对成本是否有误
reenjie 2014-08-23
  • 打赏
  • 举报
回复
那下面的sql行不行? select FItemID,sum(配件费用) as 配件费用总和,sum(B.QT费用) as B.QT费用总和,sum(B.QZ费用) as B.QZ费用总和,sum(配件费用)+sum(B.QT费用)+sum(B.QZ费用) as 费用总和 from tablename group by FItemID
asd620620 2014-08-23
  • 打赏
  • 举报
回复
引用 6 楼 reenjie 的回复:
select Fnumber,配件费用,B.QT费用,B.QZ费用,'' as 合计 from tablename union all select '合计',sum(配件费用),sum(B.QT费用),sum(B.QZ费用),sum(配件费用)+sum(B.QT费用)+sum(B.QZ费用) from tablename 先写了其中的几列作为结果。另还可以加上where 条件。 [quote=引用 楼主 asd620620 的回复:]
FIQty                                   FNumber                                                                          采购价格                   单位材料费                  单位加工费                  单重                     加工费                    估价                     配件费用                   B.QT费用                 B.QZ费用
--------------------------------------- -------------------------------------------------------------------------------- ---------------------- ---------------------- ---------------------- ---------------------- ---------------------- ---------------------- ---------------------- ---------------------- ----------------------
1.0000000000                            B.QT.AM.BJ.00204                                                                 0                      0                      0                      0.2                    1.4                    0                      0                      2.3419376              0
1.0000000000                            B.QZ.AM.BJ.00200                                                                 0                      0                      0                      0                      1.25                   0                      0                      0                      4.434626
1.0000000000                            B.QZ.AM.RM.00009                                                                 75.2137                0                      0                      0                      0                      0                      0                      0                      75.2137
1.0000000000                            M.QT.AM.BJ.00057                                                                 0                      3.6752                 0                      0.188                  0.251                  0                      0                      0                      0
1.0000000000                            M.QZ.AM.BJ.00101                                                                 0                      3.6752                 3.2479                 0.46                   0                      0                      0                      0                      0
1.0000000000                            P.BJ.CX.00003                                                                    0.019542792            0                      0                      0.00228                0                      0                      0.019542792            0                      0
1.0000000000                            P.BJ.KC.00006                                                                    0.1726                 0                      0                      0.00867                0                      0                      0.1726                 0                      0
1.0000000000                            P.BJ.YZ.00001                                                                    0.0773                 0                      0                      0                      0                      0                      0.0773                 0                      0
1.0000000000                            P.CY.SG.00013                                                                    0.192                  0                      0                      0.017                  0.0255                 0                      0.192                  0                      0
1.0000000000                            P.SL.FC.00005                                                                    0                      0                      0                      0                      0                      0                      0                      0                      0
1.0000000000                            P.SL.QB.00041                                                                    0.2684                 0                      0                      0                      0                      0                      0.2684                 0                      0
1.0000000000                            P.XJ.FT.00046                                                                    0.335                  0                      0                      0                      0                      0                      0.335                  0                      0
1.0000000000                            X.QZ.AM.BJ.00001                                                                 0                      0                      0                      0                      0                      0                      0                      0                      0
3.0000000000                            P.BJ.MD.00003                                                                    0.2762                 0                      0                      0                      0                      0                      0.8286                 0                      0

现在有这个表格,我希望显示配件,B.QT费用,B.QZ用费 分别的合计,然后在把三个类别的在算总计,请问在SQL中要如何实现
[/quote] 现在这只是列出来一个产品的分解表,如果把多个产品都列出来了。这样计算会不会有问题?
reenjie 2014-08-23
  • 打赏
  • 举报
回复
select Fnumber,配件费用,B.QT费用,B.QZ费用,'' as 合计 from tablename union all select '合计',sum(配件费用),sum(B.QT费用),sum(B.QZ费用),sum(配件费用)+sum(B.QT费用)+sum(B.QZ费用) from tablename 先写了其中的几列作为结果。另还可以加上where 条件。
引用 楼主 asd620620 的回复:
FIQty                                   FNumber                                                                          采购价格                   单位材料费                  单位加工费                  单重                     加工费                    估价                     配件费用                   B.QT费用                 B.QZ费用
--------------------------------------- -------------------------------------------------------------------------------- ---------------------- ---------------------- ---------------------- ---------------------- ---------------------- ---------------------- ---------------------- ---------------------- ----------------------
1.0000000000                            B.QT.AM.BJ.00204                                                                 0                      0                      0                      0.2                    1.4                    0                      0                      2.3419376              0
1.0000000000                            B.QZ.AM.BJ.00200                                                                 0                      0                      0                      0                      1.25                   0                      0                      0                      4.434626
1.0000000000                            B.QZ.AM.RM.00009                                                                 75.2137                0                      0                      0                      0                      0                      0                      0                      75.2137
1.0000000000                            M.QT.AM.BJ.00057                                                                 0                      3.6752                 0                      0.188                  0.251                  0                      0                      0                      0
1.0000000000                            M.QZ.AM.BJ.00101                                                                 0                      3.6752                 3.2479                 0.46                   0                      0                      0                      0                      0
1.0000000000                            P.BJ.CX.00003                                                                    0.019542792            0                      0                      0.00228                0                      0                      0.019542792            0                      0
1.0000000000                            P.BJ.KC.00006                                                                    0.1726                 0                      0                      0.00867                0                      0                      0.1726                 0                      0
1.0000000000                            P.BJ.YZ.00001                                                                    0.0773                 0                      0                      0                      0                      0                      0.0773                 0                      0
1.0000000000                            P.CY.SG.00013                                                                    0.192                  0                      0                      0.017                  0.0255                 0                      0.192                  0                      0
1.0000000000                            P.SL.FC.00005                                                                    0                      0                      0                      0                      0                      0                      0                      0                      0
1.0000000000                            P.SL.QB.00041                                                                    0.2684                 0                      0                      0                      0                      0                      0.2684                 0                      0
1.0000000000                            P.XJ.FT.00046                                                                    0.335                  0                      0                      0                      0                      0                      0.335                  0                      0
1.0000000000                            X.QZ.AM.BJ.00001                                                                 0                      0                      0                      0                      0                      0                      0                      0                      0
3.0000000000                            P.BJ.MD.00003                                                                    0.2762                 0                      0                      0                      0                      0                      0.8286                 0                      0

现在有这个表格,我希望显示配件,B.QT费用,B.QZ用费 分别的合计,然后在把三个类别的在算总计,请问在SQL中要如何实现
asd620620 2014-08-23
  • 打赏
  • 举报
回复
引用 4 楼 reenjie 的回复:
[quote=引用 2 楼 asd620620 的回复:]
	FItemID	Qty	Fnumber	采购价格	材料费用	单位加工费用	单重	加工费	估价	配件费用	B.QT费用 	B.QZ费用	总计
	12594	1	B.QT.AM.BJ.00204	0	0	0	0.2	1.4	0	0	2.3419376	0	
	12594	1	B.QZ.AM.BJ.00200	0	0	0	0	1.25	0	0	0	4.434626	
	12594	1	B.QZ.AM.RM.00009	75.2137	0	0	0	0	0	0	0	75.2137	
	12594	1	M.QT.AM.BJ.00057	0	3.6752	0	0.188	0.251	0	0	0	0	
	12594	1	M.QZ.AM.BJ.00101	0	3.6752	3.2479	0.46	0	0	0	0	0	
	12594	1	P.BJ.CX.00003	0.019542792	0	0	0.00228	0	0	0.019542792	0	0	
	12594	1	P.BJ.KC.00006	0.1726	0	0	0.00867	0	0	0.1726	0	0	
	12594	1	P.BJ.YZ.00001	0.0773	0	0	0	0	0	0.0773	0	0	
	12594	1	P.CY.SG.00013	0.192	0	0	0.017	0.0255	0	0.192	0	0	
	12594	1	P.SL.FC.00005	0	0	0	0	0	0	0	0	0	
	12594	1	P.SL.QB.00041	0.2684	0	0	0	0	0	0.2684	0	0	
	12594	1	P.XJ.FT.00046	0.335	0	0	0	0	0	0.335	0	0	
	12594	1	X.QZ.AM.BJ.00001	0	0	0	0	0	0	0	0	0	
	12594	3	P.BJ.MD.00003	0.2762	0	0	0	0	0	0.8286	0	0	
合计										1.893442792	2.3419376	79.648326	83.88370639
我现在想做成这样的结果
FItemID Qty Fnumber 采购价格 材料费用 单位加工费用 单重 加工费 估价 这些字段是什么类型? 如果FItemID 是int 类型,而“合计”为nvarchar类型,这样就转换报错。 [/quote]好像是可以合计合放在FNnumber 列,Qty (DECIMAL), Fnumber nvarchar(50), 采购价格 材料费用 单位加工费用 单重 加工费 这几个字段都为DECIMAL类型
reenjie 2014-08-23
  • 打赏
  • 举报
回复
引用 2 楼 asd620620 的回复:
	FItemID	Qty	Fnumber	采购价格	材料费用	单位加工费用	单重	加工费	估价	配件费用	B.QT费用 	B.QZ费用	总计
	12594	1	B.QT.AM.BJ.00204	0	0	0	0.2	1.4	0	0	2.3419376	0	
	12594	1	B.QZ.AM.BJ.00200	0	0	0	0	1.25	0	0	0	4.434626	
	12594	1	B.QZ.AM.RM.00009	75.2137	0	0	0	0	0	0	0	75.2137	
	12594	1	M.QT.AM.BJ.00057	0	3.6752	0	0.188	0.251	0	0	0	0	
	12594	1	M.QZ.AM.BJ.00101	0	3.6752	3.2479	0.46	0	0	0	0	0	
	12594	1	P.BJ.CX.00003	0.019542792	0	0	0.00228	0	0	0.019542792	0	0	
	12594	1	P.BJ.KC.00006	0.1726	0	0	0.00867	0	0	0.1726	0	0	
	12594	1	P.BJ.YZ.00001	0.0773	0	0	0	0	0	0.0773	0	0	
	12594	1	P.CY.SG.00013	0.192	0	0	0.017	0.0255	0	0.192	0	0	
	12594	1	P.SL.FC.00005	0	0	0	0	0	0	0	0	0	
	12594	1	P.SL.QB.00041	0.2684	0	0	0	0	0	0.2684	0	0	
	12594	1	P.XJ.FT.00046	0.335	0	0	0	0	0	0.335	0	0	
	12594	1	X.QZ.AM.BJ.00001	0	0	0	0	0	0	0	0	0	
	12594	3	P.BJ.MD.00003	0.2762	0	0	0	0	0	0.8286	0	0	
合计										1.893442792	2.3419376	79.648326	83.88370639
我现在想做成这样的结果
FItemID Qty Fnumber 采购价格 材料费用 单位加工费用 单重 加工费 估价 这些字段是什么类型? 如果FItemID 是int 类型,而“合计”为nvarchar类型,这样就转换报错。
asd620620 2014-08-23
  • 打赏
  • 举报
回复
引用 1 楼 reenjie 的回复:
把你想要的结果贴出来。
不好意思排版有点乱 我想要这样的结果
FItemID     FIQty     FNumber                采购价格                单位材料费             单位加工费            单重                   加工费                  估价                   配件费用                B.QT费用             B.QZ费用           总计
----------- ------- ---------------------- ---------------------- ---------------------- ---------------------- ---------------------- ---------------------- ---------------------- ---------------------- ---------------------- ----------------   ------
12594       1.00     B.QT.AM.BJ.00204        0                      0                      0                      0.2                    1.4                    0                      0                      2.3419376              0
12594       1.00     B.QZ.AM.BJ.00200        0                      0                      0                      0                      1.25                   0                      0                      0                      4.434626
12594       1.00     B.QZ.AM.RM.00009        75.2137                0                      0                      0                      0                      0                      0                      0                      75.2137
12594       1.00     M.QT.AM.BJ.00057        0                      3.6752                 0                      0.188                  0.251                  0                      0                      0                      0
12594       1.00     M.QZ.AM.BJ.00101        0                      3.6752                 3.2479                 0.46                   0                      0                      0                      0                      0
12594       1.00     P.BJ.CX.00003           0.019542792            0                      0                      0.00228                0                      0                      0.019542792            0                      0
12594       1.00     P.BJ.KC.00006           0.1726                 0                      0                      0.00867                0                      0                      0.1726                 0                      0
12594       1.00     P.BJ.YZ.00001           0.0773                 0                      0                      0                      0                      0                      0.0773                 0                      0
12594       1.00     P.CY.SG.00013           0.192                  0                      0                      0.017                  0.0255                 0                      0.192                  0                      0
12594       1.00     P.SL.FC.00005           0                      0                      0                      0                      0                      0                      0                      0                      0
12594       1.00     P.SL.QB.00041           0.2684                 0                      0                      0                      0                      0                      0.2684                 0                      0
12594       1.00     P.XJ.FT.00046           0.335                  0                      0                      0                      0                      0                      0.335                  0                      0
12594       1.00     X.QZ.AM.BJ.00001        0                      0                      0                      0                      0                      0                      0                      0                      0
12594       3.00     P.BJ.MD.00003           0.2762                 0                      0                      0                      0                      0                      0.8286                 0                      0
合计                                                                                                                                                                                   1.893442792            2.3419376              79.648326        83.88370639      
asd620620 2014-08-23
  • 打赏
  • 举报
回复
	FItemID	Qty	Fnumber	采购价格	材料费用	单位加工费用	单重	加工费	估价	配件费用	B.QT费用 	B.QZ费用	总计
	12594	1	B.QT.AM.BJ.00204	0	0	0	0.2	1.4	0	0	2.3419376	0	
	12594	1	B.QZ.AM.BJ.00200	0	0	0	0	1.25	0	0	0	4.434626	
	12594	1	B.QZ.AM.RM.00009	75.2137	0	0	0	0	0	0	0	75.2137	
	12594	1	M.QT.AM.BJ.00057	0	3.6752	0	0.188	0.251	0	0	0	0	
	12594	1	M.QZ.AM.BJ.00101	0	3.6752	3.2479	0.46	0	0	0	0	0	
	12594	1	P.BJ.CX.00003	0.019542792	0	0	0.00228	0	0	0.019542792	0	0	
	12594	1	P.BJ.KC.00006	0.1726	0	0	0.00867	0	0	0.1726	0	0	
	12594	1	P.BJ.YZ.00001	0.0773	0	0	0	0	0	0.0773	0	0	
	12594	1	P.CY.SG.00013	0.192	0	0	0.017	0.0255	0	0.192	0	0	
	12594	1	P.SL.FC.00005	0	0	0	0	0	0	0	0	0	
	12594	1	P.SL.QB.00041	0.2684	0	0	0	0	0	0.2684	0	0	
	12594	1	P.XJ.FT.00046	0.335	0	0	0	0	0	0.335	0	0	
	12594	1	X.QZ.AM.BJ.00001	0	0	0	0	0	0	0	0	0	
	12594	3	P.BJ.MD.00003	0.2762	0	0	0	0	0	0.8286	0	0	
合计										1.893442792	2.3419376	79.648326	83.88370639
我现在想做成这样的结果
reenjie 2014-08-23
  • 打赏
  • 举报
回复
把你想要的结果贴出来。
xiaodongni 2014-08-23
  • 打赏
  • 举报
回复
select ID ,sum(B.QT) as sum1,SUM(B.QZ) AS sum2from tablename group by grouping sets ((ID,B.QT,B.QZ),-- 此处需要保证行唯一,返回明细 (ID))
reenjie 2014-08-23
  • 打赏
  • 举报
回复
select FItemID, FIQty, FNumber, 采购价格, 单位材料费,单位加工费,单重,加工费,估价, sum(配件费用) as 配件费用总和,sum(B.QT费用) as B.QT费用总和,sum(B.QZ费用) as B.QZ费用总和 from tablename group by FItemID, FIQty, FNumber, 采购价格, 单位材料费,单位加工费,单重,加工费,估价 with roll up 这样能实现小计,但是可能有很多你不需要的值。
引用 10 楼 asd620620 的回复:
[quote=引用 8 楼 reenjie 的回复:] 那下面的sql行不行? select FItemID,sum(配件费用) as 配件费用总和,sum(B.QT费用) as B.QT费用总和,sum(B.QZ费用) as B.QZ费用总和,sum(配件费用)+sum(B.QT费用)+sum(B.QZ费用) as 费用总和 from tablename group by FItemID
我也查了点资料好像说可以用 with rollup 这样函数来计算小算或合计,但是我不怎么会用, 可以用这个函数实现不[/quote]

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧