我在写一份报告,返回的详细信息的对象("文件")在我的数据库。我应用程序可以让用户创建自己的标志使用的对文件的对象。旗子基本上包括一个名称,那么标志的实例中存储一点值表明它是否设置的母文件的对象。

我想写一个查询,返回每一行文件数据库,其中一些列在结果设置包含该文件的细节(id,name,大小等)和剩下列标志的名字,有比值的返回,以表示是否标志置于给予的文件排。

这是否有意义吗?我怎么去写的查询?

谢谢你任何帮助。

编辑:澄清..

作为这部分的查询,我需要运行一次查询,返回的标志,已经创建由用户(我不知道这些在设计时),然后纳入一个检查每个标志的价值,在主要的查询返回的详细信息的文件。

简化的模式如下:

  • 文件{Id,Name}
  • 标志{Id,Name}
  • FileFlags{FileId,FlagId}-一排在该表表示,设置了标志的文件

我需要查询返回的一个结果与列事情是这样的:

FileId 文件名 Flag1Name Flag2Name .... FlagNName

有帮助吗?

解决方案

你可以开始看的 枢轴 功能可用于SQL服务器2005年+.这些字符串连接你应该能够组装一个查询的任何数列

根据你的意见你的选择看起来像这样的东西:

        SELECT <non-pivoted column>,

            [first pivoted column] AS <column name>,

            [second pivoted column] AS <column name>, ...
    From Table 
    PIVOT (
...
FOR 
...
)

其他提示

为什么不建立一个存储程序所需的逻辑查询的用户的具体标志,等等-并在此基础上动态地建立一个查询串的变量,你需要什么?

然后可以使用 EXECUTE 返回的动态查询设置的用户。看看 http://msdn.microsoft.com/en-us/library/ms188332.aspx

听起来像是也许你需要一个交叉查询的,你想要转行到列。是标志存在一个单独的表格作为一个为许多关系的母体桌子吗?

我觉得你想要的是个别名。这里是一个例子 http://www.sql-tutorial.net/SQL-Aliases.asp

SELECT Employee, SUM(Hours) AS SumHoursPerEmployee
FROM EmployeeHours
GROUP BY Employee 

我真的有看到你的架构,以帮助进一步。

编辑 也许你需要嵌套 SELECTs.http://sqlzoo.net/1a.htm

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top