来自多个表的图表

乔纳斯·威兰德

在此处输入图片说明 我有三个名为存款、借记和转账的表,比如

Deposit  { DepositID, DepostDate, Amount}
Debit    { DebitID, DebitDate, Amount}
Transfer { TransferID, TransferDate, Amount}

如何在一张图表中显示所有三个表?我什至想知道将这三张桌子放在一张桌子上是否更好,比如

Transaction {TransactionId, TransactionTypeId, TransactionDate, Amount} 

其中 TransactiontypeId 可以是 1 = 存款,2 是借方,3 是转账,并将此交易表绑定到图表。假设我将所有这些都放在一张表中,并使用表名 Transactions 然后 @mm8 帮助我解决了这个问题:

 var result = (from pr in db.Transactions 
                  join tr in db.TransactionType on pr.TrTypeId equals tr.TransactionTypeId
                  select new
                  {
                      TransactionDate = pr.TransactionDate,
                      TransactionType = tr.TrType,
                      Amount = pr.Amount

                  }).ToList();

chart1.DataSource = result
 .GroupBy(x => x.TransactionDate.Value.Year)
    .Select(g => new
    {
        Year = g.Key,
        TransactionType = g. //////
        Amount = g.Sum(y => y.Amount)
    })
    .ToArray();

最好是从一个表或多个表中获得一个图表以及如何做多个。

我知道我必须为每个表创建不同的系列,如下所示:

var Depseries = chart1.Series.Add("Deposit");
Depseries.XValueMember = "Year";
Depseries.YValueMembers = "DepositAmount";
Depseries.Name = "Deposit";
chart1.ChartAreas["ChartArea1"].AxisX.Interval = 1;
chart1.Series["Deposit"].IsValueShownAsLabel = true;
Depseries.CustomProperties = "LabelStyle=Left";

// Debit

var Debseries = chart1.Series.Add("Debit");
Debseries.XValueMember = "Year";
Debseries.YValueMembers = "DebitAmount";
Debseries.Name = "Debit";
chart1.ChartAreas["ChartArea1"].AxisX.Interval = 1;
chart1.Series["Debit"].IsValueShownAsLabel = true;
Debseries.CustomProperties = "LabelStyle=Left";

// Transfer
var FDseries = chart1.Series.Add("Transfer");
FDseries.XValueMember = "Year";
FDseries.YValueMembers = "TransferAmount";
FDseries.Name = "Transfer";
chart1.ChartAreas["ChartArea1"].AxisX.Interval = 1;
chart1.Series["Transfer"].IsValueShownAsLabel = true;
FDseries.CustomProperties = "LabelStyle=Left";  
毫米8

您可以只从每个表中选择数据,然后使用该DataBind方法用数据填充系列,例如:

var deposits = (from x in db.Deposits select new { x.DepositDate, x.Amount })
    .ToArray()
    .GroupBy(x => x.DepositDate.Year)
    .Select(g => new { Year = g.Key, Amount = g.Sum(y => y.Amount) })
    .ToArray();
var Depseries = chart1.Series.Add("Deposit");
Depseries.XValueMember = "Year";
Depseries.YValueMembers = "DepositAmount";
Depseries.Name = "Deposit";
chart1.ChartAreas["ChartArea1"].AxisX.Interval = 1;
chart1.Series["Deposit"].IsValueShownAsLabel = true;
Depseries.CustomProperties = "LabelStyle=Left";
chart1.Series["Deposit"].Points.DataBind(deposits, "Year", "Amount", null);

var debits = (from x in db.Debits select new { x.DebitDate, x.Amount })
    .ToArray()
    .GroupBy(x => x.DebitDate.Year)
    .Select(g => new { Year = g.Key, Amount = g.Sum(y => y.Amount) })
    .ToArray();
var Debseries = chart1.Series.Add("Debit");
Debseries.XValueMember = "Year";
Debseries.YValueMembers = "DebitAmount";
Debseries.Name = "Debit";
chart1.ChartAreas["ChartArea1"].AxisX.Interval = 1;
chart1.Series["Debit"].IsValueShownAsLabel = true;
Debseries.CustomProperties = "LabelStyle=Left";
chart1.Series["Debit"].Points.DataBind(debits, "Year", "Amount", null);

...

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

来自多个表的求和?

来自分类Dev

根据包含来自多个工作表的数据的两个下拉列表更改图表

来自分类Dev

来自多个表 MySQL 的多个 Where OR

来自分类Dev

Rails来自多个表的单个结果

来自分类Dev

来自多个表的sql count()

来自分类Dev

来自多个表的SugarORM查询?

来自分类Dev

来自多个表的SQL LIKE

来自分类Dev

来自多个表的SQL数据

来自分类Dev

来自多个连接表的总时间

来自分类Dev

计算来自多个表的联接

来自分类Dev

来自多个表的多行的MySQL SUM

来自分类Dev

来自多个表的SQL计数行

来自分类Dev

计算来自多个表的数据

来自分类Dev

汇总来自多个SQLite表的分数

来自分类Dev

来自多个表的PHP SELECT数据

来自分类Dev

MYSQL:来自多个表的平均计数

来自分类Dev

来自多个表的SQL查询

来自分类Dev

来自多个表的复杂SQL查询

来自分类Dev

来自多个表的CodeIgniter下拉列表

来自分类Dev

来自多个表的SQL LIKE

来自分类Dev

计算来自多个表的关联

来自分类Dev

来自多个表的 JavaFX 登录系统

来自分类Dev

Excel - 合并来自多个表的数据

来自分类Dev

来自多个随机表的sql查询

来自分类Dev

单个查询中来自多个表的多个COUNT SELECTS

来自分类Dev

ActiveRecord-来自多个表的多个条件

来自分类Dev

MySQL分页用于来自多个表的项目

来自分类Dev

数据库结构-来自多个表的项目

来自分类Dev

来自多个联接表的COUNT行-MSSQL