Sql server 如何在表格面板中动态显示数据
我正在使用C语言开发一个windows应用程序。在这个应用程序中,有一个表单我希望在表格布局面板中显示按类别的书籍图像。对于每个类别,我希望显示5个书籍图像 我用来检索分类图书的查询是Sql server 如何在表格面板中动态显示数据,sql-server,Sql Server,我正在使用C语言开发一个windows应用程序。在这个应用程序中,有一个表单我希望在表格布局面板中显示按类别的书籍图像。对于每个类别,我希望显示5个书籍图像 我用来检索分类图书的查询是 WITH CategoryCTE AS ( SELECT BookName, ROW_NUMBER() OVER ( PARTITION BY CategoryName ORDER BY CategoryName DESC
WITH CategoryCTE AS (
SELECT
BookName,
ROW_NUMBER() OVER (
PARTITION BY CategoryName
ORDER BY CategoryName DESC
) AS CTE_Order
FROM BookMaster
)
SELECT bm.BookName,bm.BookImage, cm.CategoryName, scm.SubCategoryName
FROM
CategoryCTE
INNER JOIN BookMaster bm ON CategoryCTE.BookName = bm.BookName
INNER JOIN CategoryMaster cm ON bm.CategoryName = cm.Oid
INNER JOIN SubCategoryMaster scm ON bm.SubCategoryName = scm.Oid
WHERE CategoryCTE.CTE_Order < 6
GROUP BY cm.CategoryName, scm.SubCategoryName, bm.BookName,bm.BookImage
这个查询为我提供了正确的输出,即每个类别中有5本书。
但问题是,我想在表面板中显示书籍图像,即第1行有5个类别1的书籍图像,第2行有类别2的书籍图像,依此类推。现在我的数据库中有4个书籍类别。这意味着表布局面板的行取决于数据库中的类别表,表的列是固定的,即第一列是类别名称,其他5列有书籍图像
我希望我已经正确地解释了我的问题。请为我提供任何解决方案。
提前谢谢 如果希望结果看起来像:
CategoryName Book1 Book2 Book3 Book4 Book5
------------ ----------- --------------- -------------- ------------- ------------
Cat1 Image#6.jpg Image#61.jpg Image#62.jpg Image#63.jpg Image#64.jpg
Cat2 Image#5.jpg Image#51316.jpg Image#5136.jpg Image#516.jpg Image#56.jpg
以下查询应该可以做到这一点:
WITH CategoryCTE AS (
SELECT
BookName,
ROW_NUMBER() OVER (
PARTITION BY CategoryName
ORDER BY CategoryName DESC, BookName
) AS CTE_Order
FROM BookMaster
)
SELECT CategoryName, [1] AS Book1, [2] AS Book2, [3] AS Book3, [4] AS Book4, [5] AS Book5
FROM
(SELECT bm.BookImage, cm.CategoryName, c.CTE_Order FROM
CategoryCTE c
INNER JOIN BookMaster bm ON c.BookName = bm.BookName
INNER JOIN CategoryMaster cm ON bm.CategoryName = cm.Oid
INNER JOIN SubCategoryMaster scm ON bm.SubCategoryName = scm.Oid
WHERE c.CTE_Order < 6
GROUP BY cm.CategoryName, bm.BookImage, c.CTE_Order
) Sub
PIVOT (MAX(BookImage) FOR CTE_Order IN ([1],[2],[3], [4],[5])) AS PivotTable
能否添加一个要在SQL中生成的结果集示例?理想情况下,sqlfiddle处理数据和结构:我上面给出的查询会给出类似结果的结果。如果查询给了我正确的输出,我的问题是如何在表面板布局中显示它