Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 动态SQL行和列…单元格需要后续查询。最佳方法?_C#_Sql_Stored Procedures - Fatal编程技术网

C# 动态SQL行和列…单元格需要后续查询。最佳方法?

C# 动态SQL行和列…单元格需要后续查询。最佳方法?,c#,sql,stored-procedures,C#,Sql,Stored Procedures,我有以下表格 City --------- CityID StateID Name Description Reports --------- ReportID HeaderID FooterID Description 我正在尝试生成一个网格,用于.Net控件的Gridview、Listview……另外一个问题是,对于我来说,哪一个是“最好”的网格,它将报告分配为列,城市分配为行 显示哪些城市取决于所选的州,这很简单 SELECT * FROM CITIES WHERE STATEID=@

我有以下表格

City
---------
CityID
StateID
Name
Description

Reports
---------
ReportID
HeaderID
FooterID
Description
我正在尝试生成一个网格,用于.Net控件的Gridview、Listview……另外一个问题是,对于我来说,哪一个是“最好”的网格,它将报告分配为列,城市分配为行

显示哪些城市取决于所选的州,这很简单

SELECT * FROM CITIES WHERE STATEID=@StateID
但是,用户可以选择为每个城市的人口统计、销售、土地面积等生成哪些报告

此外,结果单元格City*报告是基于所选城市和报告的不同表上的子查询

即:列销售选定收益率

SELECT * FROM SALES WHERE CITYID=@CityID

我已经编写了一个非常不雅观的解决方案,使用多个查询和蛮力强制网格逐行创建,逐行创建数据元素,但我肯定有更好的方法来实现这一点…?我收到的任何/所有建议都很受欢迎,因为蛮力方法速度慢且麻烦……而且客户必须经常使用,因此我不确定它在当前的实施中是否可以接受。

由于您遇到城市没有所有报告的问题,您是否尝试过离开?要获取网格的行,可以执行以下操作:

select sales.amt, Demographics.amt, LandArea.amt from cities left join sales on  cities.cityid = sales.cityid 
left join Demographics on  cities.cityid = Demographics.cityid  
left join LandArea on cities.cityid = LandArea.cityid 
上述查询的唯一缺点是,报告类型人口统计、销售、土地面积等在查询中是硬编码的。也许您可以将上面的查询与您提到的尝试过的动态查询混合使用

也许显示网格的代码可以帮助您获得更好的答案


希望能有所帮助。

我可以很容易地加入表格,但是,后续的查询让我感到悲伤……不是所有城市都会有每个报告的数据。我查看了一个城市临时表,其中为每个报告/列动态生成列,但我的开发人员笔记本电脑上没有互联网,所以我一直无法使用空值,因此不得不使用伪代码。。。foreach row foreach column查询传入row&column变量,有效地对网格中的每个单元格进行查询。查询一个只有几个城市的州,并选择报告…不是一个大城市。用六份或八份报告来了解Cali?不太好。如前所述,我已经找到了一个解决方案…但它给我的印象是效率低下且成本高昂。。。