0

我有一个名为 Firstname 和 Categories 的数据库列。

FirstName  | Categories

Mike       | Blue; Green ; Red
Peter      | Green; Red
Paul       | Red; Blue

我想生成这种格式的报告

**Blue :** 
Mike
Paul

**Green:**
Mike
Peter

**Red:**
Peter 
Paul

问题是我无法更改访问数据库列的值,它必须有一个分号来分隔这些值。我有 1000 多条记录和 30 多个类别。

我怎样才能做到这一点?我正在使用水晶报表,我不是专业用户,但我很容易学习东西。

4

2 回答 2

0

我会说你很可能不走运。这些数据的设计非常糟糕,并且没有简单的方法可以将这些数据取出。

您的选择是:

  • 让其他来源以可解析的格式发送数据,并将 Crystal Reports 指向那个,或者...
  • 在 Access 中创建一个新的规范化表,在 Access 中使用 VBA 爬取当前表并填充新表,然后将 Crystal Reports 指向新表。

选项 #2 的缺点是您可能必须在运行 Crystal Report 之前重新填充新表。

于 2012-07-03T18:59:26.543 回答
0

这很容易实现,尽管有 30 个类别的可能性它变得丑陋。如果一个类别的整个名称是另一个类别的子字符串(例如:Green 和 YellowGreen),它会变得更加丑陋

  1. 制作一个水晶报表,选择数据库,但选择添加命令而不是拖动表格。
  2. 像这样插入“SQL”:

.

SELECT 'Blue' As Category,*
FROM Customers
WHERE Categories LIKE '*Blue*'
UNION ALL
SELECT 'Green' As Category,*
FROM Customers
WHERE Categories LIKE '*Green*'
UNION ALL
SELECT 'Red' As Category,*
FROM Customers
WHERE Categories LIKE '*Red*'

然后在 Report > Group Expert .. group by Command.Category

于 2012-07-03T21:46:29.660 回答