【问题标题】:Generating report from two separate tables using visual studio使用 Visual Studio 从两个单独的表生成报告
【发布时间】:2011-10-17 02:40:28
【问题描述】:

我有一个表(concepttable),它在conceptname 列中存储了情绪,例如快乐悲伤等。用户可以通过asp web 表单在其中添加更多情绪。 在同一个数据集中还有另一个名为 (blog) 的表,其中包含多个博客条目的字符串,其中包含条目日期。

我将如何使用服务报告来使用下拉列表来显示(概念名称)中存储的情绪,然后显示所选情绪(例如悲伤)在所有博客内容中出现的次数博客表中的字符串?

感谢您的帮助,我一直在盲目地尝试使用联接和全文搜索,但不确定要通过什么方式来实现这一目标。 我附上了一张显示数据源的图片。

我想要实现的输出是一个类似这样的图表:

对不起,如果这含糊不清,如果您不确定我的意思,请添加评论。感谢您的帮助!

【问题讨论】:

  • 博客表中的哪个字段包含这个概念?
  • 概念保存在一个单独的表中,位于概念名称下,博客表只包含条目。那么这两个表需要相互比较吗?或加入?
  • 好的,所以您的博客表有一个名为 CONTENT 的文本字段?而在那个场域内,可以输入悲伤、愤怒等情绪吗?对吗?
  • 不抱歉,博客有一个单独的表,名为 CONCEPT,其中包含 Conceptname 下的情绪。 CONTENT 将博客条目保存在博客表中。如果您查看第一个屏幕截图,它会在左侧显示 2 个表格。谢谢

标签: c# asp.net sql visual-studio-2010 reporting-services


【解决方案1】:

这是您需要的 SQL:

select conceptName,COUNT(distinct blogId) as Tot
from conceptTable ct
join blogs on content like '%'+ct.conceptName+'%'
group by conceptName

要获得概念出现的第一个日期

select conceptName,min(inputDate) as FirstTime,COUNT(distinct blogId) as Tot
from conceptTable ct
join blogs on content like '%'+ct.conceptName+'%'
group by conceptName

要获取概念出现的最近日期

select conceptName,max(inputDate) as MostRecent,COUNT(distinct blogId) as Tot
from conceptTable ct
join blogs on content like '%'+ct.conceptName+'%'
group by conceptName

获取所有日期

select conceptName,inputDate,COUNT(distinct blogId) as Tot
from conceptTable ct
join blogs on content like '%'+ct.conceptName+'%'
group by conceptName,inputDate

【讨论】:

  • 虽然这可以满足您的要求,但它可能无法按预期工作。如果用户在他们的博客中输入我不高兴会怎样?即使输入条目的用户不开心,代码也会将其视为“开心”的发生......有很多类似的陷阱需要考虑。
  • 嗨 sparkey 差不多了,但我如何从博客表中获取输入日期以显示呢?
猜你喜欢
  • 2021-05-22
  • 2021-10-31
  • 2018-03-29
  • 1970-01-01
  • 1970-01-01
  • 2021-02-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多