![](/img/trans.png)
[英]select data from #Temp table after #temp table create in another query in asp.net c#
[英].net temp table issue
我有一个 c# .net 核心项目和一个名为 Sensor 的 model。
public class Sensor
{
public int Id { get; set; }
public long timestamp { get; set; }
[Display(Name = "Country")]
public string country { get; set; }
[Display(Name = "Region")]
public string region { get; set; }
[Display(Name = "Emitter")]
public string emitter { get; set; }
[Display(Name = "Value")]
public string value { get; set; }
}
我需要得到以下数据:
国家和地区的组合(称为标签)及其出现。 在该标签上,添加发射器并分别计算出现次数。
前任:
美国南部 - 1000
usa.south.sensor01 - 700
usa.south.sensor02 - 300
加拿大.北 - 1500
canada.north.sensor01 - 1250
canada.north.sensor02 - 250
我最初的想法是使用临时表来保存值,但它不起作用。
CREATE TABLE _Results (Tag Varchar(150), Total Int)
INSERT INTO[_Results] (Tag, Total)"
SELECT country '.' region AS Tag, COUNT() AS Total
FROM Sensor
GROUP BY country, region
INSERT INTO[_Results](Tag, Total)
SELECT country '.' region '.' emitter AS Tag, COUNT() AS Total
FROM Sensor
GROUP BY country, region, emitter
SELECT * FROM _Results
DROP TABLE _Results
但我不能让它工作。
有人能帮我吗? Memory 使用解决方案不可用,所以我必须使用 SQL 和 Microsoft.EntityFrameworkCore
不需要临时表
SELECT country + '.' + region AS Tag, '' as Emitter, COUNT() AS Total
FROM Sensor
GROUP BY country, region
UNION
SELECT country + '.' + region AS Tag, Emitter, COUNT() AS Total
FROM Sensor
GROUP BY country, region, emitter
为 Tag、Emitter 和 Total 创建一个实体。 我们称之为统计。 在 DBContext 中声明一个 dbset
public virtual DbSet<Statistic> Statistics { get; set; }
使用 FromSql 和 AsNoTracking 运行上述 SQL
query = context.Statistics
.FromSql(sql)
.AsNoTracking();
sql 是将上述 SQL 查询保存在字符串中。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.