一个表关联多个表,那些表都是统计的,有没有好的方法实现。该如何处理
一个表关联多个表,那些表都是统计的,有没有好的方法实现。
有三个表,a b c
a为主表
b c为a表对应的某类型的计数表,如下图:
a表

b表

c表

我需要统计a表中所有用户对应的pnum和tnum,我分开统计如下:

我要合并在一个结果集中要怎么用
难道只能分开统计,然后再JOIN一下吗?
最终效果如下:

所有脚本如下:
分开统计语句:
麻烦了,谢谢。
------解决方案--------------------
这样?
------解决方案--------------------
直接两个LEFT JOIN不就好了?
------解决方案--------------------
用1楼的方法就可以了
------解决方案--------------------
这个只能分别求了然后再JOIN 不然会出问题的
有三个表,a b c
a为主表
b c为a表对应的某类型的计数表,如下图:
a表
b表
c表
我需要统计a表中所有用户对应的pnum和tnum,我分开统计如下:
我要合并在一个结果集中要怎么用
难道只能分开统计,然后再JOIN一下吗?
最终效果如下:
所有脚本如下:
CREATE TABLE [dbo].[c](
[id] [int] NULL,
[tnum] [int] NULL
) ON [PRIMARY]
GO
INSERT [dbo].[c] ([id], [tnum]) VALUES (1, 7)
INSERT [dbo].[c] ([id], [tnum]) VALUES (2, 6)
INSERT [dbo].[c] ([id], [tnum]) VALUES (3, 5)
INSERT [dbo].[c] ([id], [tnum]) VALUES (1, 2)
INSERT [dbo].[c] ([id], [tnum]) VALUES (2, 2)
GO
CREATE TABLE [dbo].[b](
[id] [int] NULL,
[pnum] [int] NULL
) ON [PRIMARY]
GO
INSERT [dbo].[b] ([id], [pnum]) VALUES (1, 2)
INSERT [dbo].[b] ([id], [pnum]) VALUES (3, 4)
INSERT [dbo].[b] ([id], [pnum]) VALUES (4, 1)
INSERT [dbo].[b] ([id], [pnum]) VALUES (1, 1)
INSERT [dbo].[b] ([id], [pnum]) VALUES (3, 1)
GO
CREATE TABLE [dbo].[a](
[id] [int] NULL,
[txt] [varchar](50) NULL
) ON [PRIMARY]
GO
INSERT [dbo].[a] ([id], [txt]) VALUES (1, N'张三')
INSERT [dbo].[a] ([id], [txt]) VALUES (2, N'李四')
INSERT [dbo].[a] ([id], [txt]) VALUES (3, N'王五')
INSERT [dbo].[a] ([id], [txt]) VALUES (4, N'赵六')
分开统计语句:
select a.id,a.txt,SUM(b.pnum) pnum
from a
left join b
on a.id=b.id
group by a.id,a.txt
select a.id,a.txt,SUM(c.tnum) tnum
from a
left join c
on a.id=c.id
group by a.id,a.txt
麻烦了,谢谢。
------解决方案--------------------
select a.id,a.txt,SUM(c.tnum) tnum,SUM(b.pnum) pnum
from a
left join c
on a.id=c.id
left join b
on a.id=b.id
group by a.id,a.txt
这样?
------解决方案--------------------
直接两个LEFT JOIN不就好了?
------解决方案--------------------
用1楼的方法就可以了
------解决方案--------------------
这个只能分别求了然后再JOIN 不然会出问题的