这是我的问题
SELECT
F.intfloorno,
FL.nvrflatname
FROM tbl_floormaster F
INNER JOIN tbl_flatmaster FL ON FL.intfloorid=F.intfloorid
WHERE intblockid=1
ORDER BY intfloorno DESC这是输出:
floorno flat
2 FlatB1
2 FlatB2
1 FlatA1
1 FlatA2但我需要这样做:
floorno flat dummycolum
1 FlatA1 FlatA2
2 FlatB2 FlatB2 发布于 2011-11-05 22:11:20
这一点:
SELECT F.intfloorno as Floor,
stuff( (SELECT ','+FL.nvrflatname
FROM tbl_flatmaster FL
WHERE FL.intfloorid=F.intfloorid
ORDER BY FL.nvrflatname
FOR XML PATH ('')
), 1, 2, '') as FlatList
WHERE intblockid=1
ORDER BY intfloorno DESC将会给予
Floor FlatList
1 FlatA1,FlatA2
2 FlatB1,FlatB2 不是在单独的列中,但可能是您想要的?
发布于 2011-11-05 21:57:48
好的,如果您的原始输出包含1号floorno上的10000个扁平实例,那么您将需要9,999个虚拟列?
忽略floorno的排序--使用ORDER BY子句很容易--您会混淆查询的输出和输出的显示格式。
使用SQL查询数据,然后将其传递给其他一些过程,在这些过程中,您可以在表示层中对其进行格式化。如果你描述你的表示层是什么(html?)然后,您可以将帖子移动到关于在表格中显示请求结果的HTML/XHR问题。
发布于 2011-11-05 22:02:03
您是否正在尝试控制表象输出?如果是这样的话,这是错误的方法。但是,如果您正在尝试转置您的表,则可以查看crosstab or pivot query。这是another description
https://stackoverflow.com/questions/8020551
复制相似问题