【发布时间】:2011-12-21 22:48:19
【问题描述】:
这是我的问题:
我有一个结构如下的数据库:
|ID_Brand| Description
------------------------------
|1 | CoolBrandName
|2 | AlsoCoolBrandName
|... | ...
链接到这个表我创建了一个这样的文件表
|ID_file | ID_BRAND | DESCRIPTION | FILECONTENT | ID_CATEGORY
-------------------------------------------------------------
|1 | 1 | File1 |0x0FF0A0B2..| 1
|2 | 1 | File2 |0x2F1A000C..| 2
|3 | 2 | File3 |0X5FB43002..| 1
|4 | 1 | File4 |0x93EEFD13..| 1
|... |... | ... |... | ...
最终是 Category 表,通过 ID_CATEGORY 关联链接到上面的表。
|ID_CATEGORY | DESCRIPTION
--------------------------
|1 | Category1
|2 | Category2
|3 | Category3
|4 | Category4
|... | ...
我需要在这些表上显示数据,就像数据透视表一样,按类别分组。 例如,对于上面的数据,我需要输出如下内容:
|BrandName | Category1 | Category2 | Category3 | Category4
------------------------------------------------------------------
|CoolBrandName | File1 | File2 | *NULL* | *NULL*
|AlsoCoolBrandName | File3 | *NULL* | *NULL* | *NULL*
|CoolBrandName | File4 | *NULL* | *NULL* | *NULL*
类别表的行数是固定的。
我尝试从以下示例开始 http://msdn.microsoft.com/en-us/library/ms177410.aspx 但没有运气。
我需要通过 SQL(我使用的是 sql server 2008 r2)或通过 Linq 来实现这一点。
谁能帮我解决这个问题?
感谢任何建议。
提前致谢 五、
【问题讨论】:
-
File1和File4是同一个品牌,属于同一个品类。那怎么知道哪一个应该和File2在同一行呢? -
这是一个很好的观点。我认为分组结果可以解决这个问题。
-
是的,当我们知道哪个值必须去哪里时,我们就能想出正确的分组方式。我们不能以某种方式对其进行分组,原则或规则必须是明确的。
-
如果没关系,可以使用一些任意规则(例如,按字母顺序排序时,根据它们各自的位置对它们进行分组)。到目前为止,我在问
File1或File4两者中的哪一个应该与File2一起使用。 -
你好安德烈。不,文件 2 与哪个文件无关。实际上,以这种方式显示它们只是一个图形问题。
标签: sql sql-server linq sql-server-2008 pivot