计算每组的小计
我需要来自多表的报告我使用此查询(SQL Server)
Select CASE When ([bills].[BT] ='0' and [bills].[T] = 1 )Then 'Purchas1'
When([bills].[BT] ='0' and [bills].[T] = 3 ) Then 'Output'
When([bills].[BT] ='0' and [bills].[T] = 4 ) Then 'Input'
When [bills].[BT] ='1' Then 'ٍSales'
When [bills].[BT] = '2' Then 'Prch2'
When [bills].[BT] = '3' Then 'ٍSales2'
When [bills].[BT] = '4' Then 'SInput'
END AS BillType,
[mat].[Name] as Product,
[mat].[Code], [store].[Name],
SUM( [billInfo].[qty]) as Qtys
from [mat],[billInfo000],[store],[bu],[bills]
Where [bu].[TG] =[bills].[g]
and [billInfo].[ParentGUID] =[bu].[g]
and [billInfo].[StoreGUID] =[store].[g]
and [billInfo].[MatGUID] = [mat].[g]
Group by [bills].[BT],[bills].[T],[mat].[Name],
[mat].[Code],[store].[Name] ,[mat].[qty]
我想要的是在每个组后添加一行进行计算 如果它是相同的产品和相同的代码和商店我需要 收集 buy1+Input+Prch2+SInput 减去 Sales、Output、Sales2 像这样:
BillType | Product | Code | Name | Qtys -------- ------- ---- ---- ---- Purchas1 Pro1 001 Main 150 Output Pro1 001 Main 10 Sales Pro1 001 Main 30 Purch2 Pro1 001 Main 50 Balance Pro1 001 Main 160 Output Pro1 001 Branch 10 Sales Pro1 001 Branch 10 Balance Pro1 001 Brabch -20
谢谢
I need report from multi table I use this query (SQL Server)
Select CASE When ([bills].[BT] ='0' and [bills].[T] = 1 )Then 'Purchas1'
When([bills].[BT] ='0' and [bills].[T] = 3 ) Then 'Output'
When([bills].[BT] ='0' and [bills].[T] = 4 ) Then 'Input'
When [bills].[BT] ='1' Then 'ٍSales'
When [bills].[BT] = '2' Then 'Prch2'
When [bills].[BT] = '3' Then 'ٍSales2'
When [bills].[BT] = '4' Then 'SInput'
END AS BillType,
[mat].[Name] as Product,
[mat].[Code], [store].[Name],
SUM( [billInfo].[qty]) as Qtys
from [mat],[billInfo000],[store],[bu],[bills]
Where [bu].[TG] =[bills].[g]
and [billInfo].[ParentGUID] =[bu].[g]
and [billInfo].[StoreGUID] =[store].[g]
and [billInfo].[MatGUID] = [mat].[g]
Group by [bills].[BT],[bills].[T],[mat].[Name],
[mat].[Code],[store].[Name] ,[mat].[qty]
what i want is adding one row after each group with Calculating
If it's same Product and same code and store i need
collect purchase1+Input+Prch2+SInput minus Sales, Output, Sales2
Like This:
BillType | Product | Code | Name | Qtys
-------- ------- ---- ---- ----
Purchas1 Pro1 001 Main 150
Output Pro1 001 Main 10
Sales Pro1 001 Main 30
Purch2 Pro1 001 Main 50
Balance Pro1 001 Main 160
Output Pro1 001 Branch 10
Sales Pro1 001 Branch 10
Balance Pro1 001 Brabch -20
Thanks
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
不是
ROLLUP
,而是使用WITH
语句和UNION
也可以达到同样的效果。其要点是
WITH
语句SELECT
all fromq
将原始查询存储在q
q
中使用GROUP BY
来计算余额UNION
将结果组合在一起SQL Server 2000
SQL Server 2005+
Not a
ROLLUP
but using aWITH
statement and aUNION
could do the trick just as wel.The gist of it is to
q
using theWITH
statementSELECT
all fromq
GROUP BY
again fromq
to calculate the balancesUNION
the results togetherSQL Server 2000
SQL Server 2005+