A表
uid name town village
1 aa 2 4
2 bb 3 5
3 cc 2 4
4 dd 2 6
B表
cid cname level fatherid
1 A县 1 NULL
2 B镇 2 1
3 C镇 2 1
4 D村 3 2
5 E村 3 2
6 F村 3 3
C表
uid time pig cow sheep
1 2011-11 2 3 4
1 2011-12 5 6 7
2 2011-11 8 9 10
2 2011-11 11 12 13
2 2011-11 14 15 16
A表的town对应B表level为2的cid
A表的village对应B表level为3的cid
B表的镇的fatherid为县的cid,村的fatherid为镇的cid
C表的uid对应A表的uid1.要统计出A县下B镇的动物数量和C镇的动物数量
cname pig cow sheep
B镇 40 45 50
C镇 0 0 0
B镇下有D、E村,D村下有aa、cc,E村下有bb,C镇下F村只有dd,在C表没有数据,所以得到的是以上的数据2.B镇下下D村E村各自的动物数量的数量
cname pig cow sheep
D村 7 9 11
E村 33 36 39依照我上面给的几张表的数据要得到以上这样的两组结果。
我要把这个结果绑定到ReportViewer,要怎么才能实现这样的统计?
uid name town village
1 aa 2 4
2 bb 3 5
3 cc 2 4
4 dd 2 6
B表
cid cname level fatherid
1 A县 1 NULL
2 B镇 2 1
3 C镇 2 1
4 D村 3 2
5 E村 3 2
6 F村 3 3
C表
uid time pig cow sheep
1 2011-11 2 3 4
1 2011-12 5 6 7
2 2011-11 8 9 10
2 2011-11 11 12 13
2 2011-11 14 15 16
A表的town对应B表level为2的cid
A表的village对应B表level为3的cid
B表的镇的fatherid为县的cid,村的fatherid为镇的cid
C表的uid对应A表的uid1.要统计出A县下B镇的动物数量和C镇的动物数量
cname pig cow sheep
B镇 40 45 50
C镇 0 0 0
B镇下有D、E村,D村下有aa、cc,E村下有bb,C镇下F村只有dd,在C表没有数据,所以得到的是以上的数据2.B镇下下D村E村各自的动物数量的数量
cname pig cow sheep
D村 7 9 11
E村 33 36 39依照我上面给的几张表的数据要得到以上这样的两组结果。
我要把这个结果绑定到ReportViewer,要怎么才能实现这样的统计?
解决方案 »
- System.web.mail发邮件出现的错误。
- ImageList
- 哪位前辈有空,麻烦指点一下C#连接SQL的一个问题,拜托了。
- 关于字符串格式化输出
- 请教一个关于接口的问题
- 急,哪位用.net的打包工具将oracle客户端打包的,帮帮我谢谢
- C#如何读取共享文件夹
- 求助大神们一个问题~c#连接access数据库,关于多表删除的问题
- 请问一个ASP.net和数据库方面的问题(我是用SQL Server建的数据库),请高手回答
- 怎样配置paradox7的odbc
- Winform用Progress.Start打开文件夹窗口出错
- VS2010开发出的winform程序是不是必须在.net4 framework环境下运行?
SELECT QQ_1.uid, QQ_1.name, QQ_1.town, QQ_1.village, QQ_1.cid, QQ_1.cname, QQ_1.[level], QQ_1.fatherid, r.uid AS Expr1, r.time, r.pig, r.cow, r.sheep
FROM (SELECT a.uid, a.name, a.town, a.village, b.cid, b.cname, b.[level], b.fatherid
FROM dbo.A AS a LEFT OUTER JOIN
dbo.B AS b ON b.cid = a.town) AS QQ_1 LEFT OUTER JOIN
(SELECT uid, time, pig, cow, sheep
FROM dbo.C) AS r ON r.uid = QQ_1.uid
select [cname],SUM(pig)as pig,SUM(cow) as cow,SUM(sheep) as sheep from [Text].[dbo].[QQ] where [time] ='2011-1-11' group by [cname]