相关疑难解决方法(0)

从一列的多行创建一个逗号分隔的字符串?

我有这样的访问表

ID | UserName | CarBrand
-------------------------
0    Peter      VW
1    Peter      Ferrari
2    Mike       Audi
3    Peter      Dodge
4    Heidi      BMW
5    Heidi      Ford
Run Code Online (Sandbox Code Playgroud)

我需要CarBrand字段中的名称作为报告的逗号分隔列表.

有没有一种方法(没有VB,可能使用COALESCE替代?)来创建这样的逗号分隔字符串,没有该Name:部分?

Peter: VW, Ferrari, Dodge
Mike:  Audi
Heidi: BMW, Ford
Run Code Online (Sandbox Code Playgroud)

因为它是一个报告,还有其他方法可以做到这一点,也许在报告中使用表达式?

sql ms-access ms-access-2003

6
推荐指数
1
解决办法
6685
查看次数

如何在单个GROUP BY DAY(date_field)SQL查询中包含空行?

我正在使用MS SQL Server,但欢迎来自其他数据库的比较解决方案.

这是我查询的基本形式.它返回'incidentsm1'表中每天的调用次数:

SELECT 
  COUNT(*) AS "Calls",
  MAX(open_time),
  open_day
FROM 
  (
SELECT
 incident_id,
 opened_by,
 open_time - (9.0/24) AS open_time,
 DATEPART(dd, (open_time-(9.0/24))) AS open_day
   FROM incidentsm1 
   WHERE 
 DATEDIFF(DAY, open_time-(9.0/24), GETDATE())< 7

  ) inc1
GROUP BY open_day
Run Code Online (Sandbox Code Playgroud)

此数据用于绘制条形图,但如果在一周中的某一天没有调用,则没有结果行,因此没有条形图,并且用户就像是,"为什么图表只有六天,从周六到周一跳过?"

不知怎的,我需要UNION ALL每天都有一个空行或类似的东西,但我无法弄明白.

我受限于我可以用一个SQL语句做什么,我只读访问所以我不能创建一个临时表或任何东西.

sql sql-server group-by date

5
推荐指数
1
解决办法
7746
查看次数

来自内部联接表的"SELECT*"

如何选择两个连接表的所有字段,而不与公共字段冲突?

假设我有两个表,Products并且Services.我想做一个这样的查询:

SELECT Products.*, Services.* 
FROM Products 
INNER JOIN Services ON Products.IdService = Services.IdService
Run Code Online (Sandbox Code Playgroud)

这个查询的问题是IdService会出现两次并导致一堆问题.

到目前为止,我发现的替代方案是区分Products除了IdService一个之外的每个字段.但是这样我每次添加新字段时都必须更新查询Products.

有一个更好的方法吗?

sql sql-server inner-join

2
推荐指数
2
解决办法
5066
查看次数

.NET DataReader和SQL连接

string query = 
    "SELECT * FROM table1, table2 WHERE table1.Id = table2.fId";
...
using(IDataReader dataReader = 
    db.ExecuteReader(CommandType.Text, query))
..
string value = dataReader["table2.field"]; //dies
Run Code Online (Sandbox Code Playgroud)

我目前正在编写一些.NET代码,它涉及执行连接查询,然后使用DataReader访问返回的数据.我想知道是否可以使用某种前缀表示法访问返回行中的字段(参见上面的示例),而不必使用序号位置来访问行中的值(在两个表都包含重叠字段的情况下)名)?

.net sql sqldatareader

1
推荐指数
1
解决办法
2610
查看次数