【发布时间】:2012-01-30 06:03:29
【问题描述】:
我使用的是 MySQL 4.2。
我有 2 张桌子:
-
tbl_User存储 USERID 和 REGCODE。 REGCODE 是用户用于注册服务的代码。 -
tbl_Message存储每个用户发布的消息。
我需要查询 tbl_User 中的所有用户以获取相应的 REGCODE 以获得总数。 然后,我想知道这些用户中有多少在 tbl_Message 中至少有一个条目,他们的 USERID 与 AUTHORID 匹配。 最后一行是用户发帖的百分比。
我的目标是从最后一行的两个表中计算百分比,但我不确定如何在查询中加入表以获得正确答案。感谢您的帮助!
表格图表: http://img526.imageshack.us/img526/6105/tablep.png
这是我正在使用的查询:
Select 'Percentage',
Sum(Case
When tbl_User.REGCODE = 9001 And
tbl_User.USERID = tbl_Message.AUTHORID Then 1 Else 0
End) / Sum(Case When tbl_User.REGCODE = 9001 Then 1 Else 0 End) * 100.0,
Sum(Case
When tbl_User.REGCODE = 9002 And
tbl_User.USERID = tbl_Message.AUTHORID Then 1 Else 0
End) / Sum(Case When tbl_User.REGCODE = 9002 Then 1 Else 0 End) * 100.0,
Sum(Case
When tbl_User.REGCODE = 9003 And
tbl_User.USERID = tbl_Message.AUTHORID Then 1 Else 0
End) / Sum(Case When tbl_User.REGCODE = 9003 Then 1 Else 0 End) * 100.0,
Sum(Case
When tbl_User.REGCODE = 9004 And
tbl_User.USERID = tbl_Message.AUTHORID Then 1 Else 0
End) / Sum(Case When tbl_User.REGCODE = 9004 Then 1 Else 0 End) * 100.0,
Sum(Case
When tbl_User.REGCODE = 9005 And
tbl_User.USERID = tbl_Message.AUTHORID Then 1 Else 0
End) / Sum(Case When tbl_User.REGCODE = 9005 Then 1 Else 0 End) * 100.0,
Sum(Case
When tbl_User.REGCODE = 9006 And
tbl_User.USERID = tbl_Message.AUTHORID Then 1 Else 0
End) / Sum(Case When tbl_User.REGCODE = 9006 Then 1 Else 0 End) * 100.0,
Sum(Case
When tbl_User.REGCODE = 9007 And
tbl_User.USERID = tbl_Message.AUTHORID Then 1 Else 0
End) / Sum(Case When tbl_User.REGCODE = 9007 Then 1 Else 0 End) * 100.0,
Sum(Case
When tbl_User.REGCODE = 9008 And
tbl_User.USERID = tbl_Message.AUTHORID Then 1 Else 0
End) / Sum(Case When tbl_User.REGCODE = 9008 Then 1 Else 0 End) * 100.0
From tbl_User
left Join tbl_Message
tbl_Message ON tbl_User.USERID = tbl_Message.AUTHORID
Where tbl_Message.AUTHORID IS NOT NULL
【问题讨论】:
-
请问可以添加两张表的结构吗?这会有所帮助
-
如果您(用文字)解释您正在尝试做的事情会有所帮助 - 例如“每个用户的收件箱中他们是其作者的邮件的百分比”?
-
我已经添加了我的表格,谢谢大家
-
我有 2 个表:tbl_User 存储 USERID 和 REGCODE。 REGCODE 是用户用于注册服务的代码。 tbl_Message 存储每个用户发布的消息。我需要查询 tbl_User 中的所有用户以获取相应的 REGCODE 以获得总数。然后,我想知道这些用户中有多少在 tbl_Message 中至少有一个条目,他们的 USERID 与 AUTHORID 匹配。最后一行是用户发帖的百分比。
标签: mysql