C# 计算c后在sql中输入值
我对这个有点陌生,但我会尽量提供更多的细节。这是我的SQL表 顾客 客户Id PK |第一个|最后一个|地址|电话|技术Id FK| ----------+----+----+-------+-----+-------+ 1 |鲍勃|史密斯| 123假圣| 3298492 | 1| 2 |约翰|曼| 123诺埃街| 2930482 | 1| 3 |汤姆|李|波尔克街123 | 9308523 | 2| 技术人员 技术Id PK |第一个|最后一个|电话|客户计数| -------+----+----+-----+--------+ 1 |蒂姆|博| 9384027 || 2 |安迪|王| 9374927 || 3 |杰克|救命| 2183847 || 我试图找到最好的方法来计算每项技术使用SQL查询或C编码拥有多少客户。我正在考虑使用Count进行查询,然后在Tech表中插入Customer\u CountC# 计算c后在sql中输入值,c#,mysql,sql,visual-studio-2012,C#,Mysql,Sql,Visual Studio 2012,我对这个有点陌生,但我会尽量提供更多的细节。这是我的SQL表 顾客 客户Id PK |第一个|最后一个|地址|电话|技术Id FK| ----------+----+----+-------+-----+-------+ 1 |鲍勃|史密斯| 123假圣| 3298492 | 1| 2 |约翰|曼| 123诺埃街| 2930482 | 1| 3 |汤姆|李|波尔克街123 | 9308523 | 2| 技术人员 技术Id PK |第一个|最后一个|电话|客户计数| -------+----+-
我使用的是visual studio 2012,SQL是在visual studio中本地创建的。请帮忙 您可以通过SQL执行此操作-使用GROUP BY子句按每项技术对结果进行分组。您可以使用COUNT函数返回分配给每项技术的客户数量。您可以将其放入UPDATE语句中,以更新每项技术的技术表中的customer_COUNT字段 例如:
UPDATE t
SET t.customer_count = COUNT(c.customer_id)
FROM tech t
INNER JOIN customers c ON c.tech_id = t.tech_id
GROUP BY c.tech_id
我倾向于使用Sql,但失败了…失望了。。 但我相信您可以使用Ado.net来完成这项工作。 这里是C演示代码
//query from db use C#
var allCus = new List<Customers>();
var gps = allCus.GroupBy(w => w.Tech_Id);
foreach(var gp in gps) {
var techId = gp.Key;
var cnt = gp.Count();
//update Tech set Customer_Count = cnt where Tech_Id = techId
}
Holp它可以工作。从技术表中删除Customer\u Count列。除非有有效的性能原因,否则最好不要创建重复可用数据的列。如果要将其显示为这样,请创建一个视图:
SELECT t.tech_id,
t.first,
t.last,
t.phone,
(SELECT COUNT(c.customer_id)
FROM customers c
WHERE c.tech_id = t.tech_id) AS Customer_Count
FROM tech t
现在,您可以像表格一样查询它,但您不需要通过此视图维护始终是最新的数据。客户计数的原因是,我需要计算每项技术应拥有的平均客户数,然后在有新客户时,它会将该客户分配给低于该平均值的技术。因此,如果我想将其放在C中,并找出哪个技术的客户数量最低,我该如何做?选择“按客户数量排序”中的前1*,ASC是您的查询,因此您可以从那里处理数据。用C语言获取数据的方法不计其数,它们都有很好的文档记录,而且很容易搜索。
SELECT t.tech_id,
t.first,
t.last,
t.phone,
(SELECT COUNT(c.customer_id)
FROM customers c
WHERE c.tech_id = t.tech_id) AS Customer_Count
FROM tech t