2013-07-21 52 views
3

我正在C#中的一個窗口應用程序上工作。在這種情況下,我想在表格佈局面板中顯示類別明智的書籍圖像。我希望爲每個類別顯示5本書圖像。如何動態地在表格面板中顯示數據

我用它來檢索類別明智書查詢是

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本書。 但問題是,我想在表格面板中顯示書籍圖像ierow 1將有5個圖書的類別1,第2行有書籍圖像的類別2等等。現在我有4個書籍類別在我的數據庫。這意味着表格佈局面板的行取決於數據庫中的類別表,並且表格的列是固定的,即第一列是類別名稱,而其他5列是書籍圖像。

我希望我已經正確地解釋了我的問題。請告訴我任何解決方案。 在此先感謝。

+0

您可以加入設定您想要在SQL生成結果的例子嗎? (最好是一個帶有數據和結構的sqlfiddle :)) – jazzytomato

+0

上面給出的查詢給出的結果如上面的查詢 –

+0

給了我適當的輸出,我的問題是如何在表格面板佈局中顯示它 –

回答

1

如果你想要的結果看起來是這樣的:

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 
相關問題