在图表中表示重复值
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在图表中表示重复值相关的知识,希望对你有一定的参考价值。
我正在使用c#中的基本图表,我在我的代码中遇到了一个问题,如果我的表中有一个重复的类别,具有不同的日期,则该类别在我的表中重复。
我认为这可以用SQL而不是C#来解决,但我有点难过。
这是我的表:
这是我的代码:
if (selectedLocation == "All")
{
string selectAllQuery = "SELECT category, counter, date, locationName FROM categoryData WHERE locationName IN (@location, @location2, @location3) AND date BETWEEN @startDate AND @endDate ORDER BY locationName, category";
SqlCommand cmd = new SqlCommand(selectAllQuery, con);
cmd.Parameters.AddWithValue("@startDate", startDate);
cmd.Parameters.AddWithValue("@endDate", endDate);
cmd.Parameters.AddWithValue("@location", "Front Desk");
cmd.Parameters.AddWithValue("@location2", "Harold Cohen");
SqlDataReader reader = cmd.ExecuteReader();
while (reader.Read())
{
this.resultChart.Series["Footfall"].Points.AddXY(reader.GetString(0), reader.GetInt32(1));
resultChart.ChartAreas["main"].AxisX.Interval = 1;
如您所见,如果我有一个具有不同日期的重复类别,则该类别是重复的。我试图将两行中具有重复值的行的值相加。
编辑:我有点进一步,现在我可以聚合具有共同类别的行,但我想为每个聚合列添加计数器。
SELECT category, COUNT(id) as count, locationName FROM categoryData WHERE locationName IN (@location, @location2, @location3) AND date BETWEEN @startDate AND @endDate GROUP BY locationName, category ORDER BY locationName, category
答案
同意Alex Zen。
您的查询应返回所有值,但DB中的每一行都将作为自己的结果返回,因为程序不知道您认为的“相同类别”。您可以在代码(使用linq)或T-SQL中添加GROUP BY并指定您认为相同的内容(在本例中为Category),您应该能够总结该类别的总计。
以上是关于在图表中表示重复值的主要内容,如果未能解决你的问题,请参考以下文章
如何在java中的内存中表示null [duplicate]