2012-10-22 60 views
1

我正在創建一個包含相冊的圖片庫。圖庫所有者可以先創建一個或多個專輯,然後創建圖像添加到這些專輯。我不得不使用多個視圖模板來解決這個問題。無論如何,這是什麼讓我失望。這裏是我的存儲過程的核心:我需要將多個行從一個子查詢合併爲一個由空格分隔的字符串

DECLARE @MyString VARCHAR(MAX) 

SELECT @MyString = ISNULL(@MyString + ' ', ' ') + CAST(AlbumID AS VARCHAR(10)) + ' ' 
FROM BD_AlbumGallery 
WHERE ImageID = PROBLEM HERE... Dont know what to do <--- 
ORDER BY AlbumID 

SELECT a.[ImageID] 
     ,a.ImageFile 
     ,a.[ImageTitle] 
     ,a.[ImageCaption] 
     ,a.[Description] 
     ,a.[Active] 
     ,b.[AlbumID] 
     ,b.[ImageID] 
     ,c.[ListingID] 
     ,c.[Active] 
     ,c.[LevelID] 
     ,c.[Title] 

     ,@MyString AS AlbumClass 

FROM BD_Gallery A 
JOIN BD_AlbumGallery B 
ON a.ImageID = b.ImageID 
JOIN BD_Listing C 
ON a.ListingID = c.ListingID 
WHERE a.ListingID = @passedListingID 
    AND a.Active = 1 
    AND c.Active = 1 
    AND c.LevelID > 5 

所以問題是,數據是鋰 ,一個在課程的時間內恢復......想這是很明顯......在正常顯示我的畫廊模板。

我唯一的問題是我需要@MyString AS AlbumClass綁定到a.ImageID或b.ImageID,因爲它們是相同的。

原因是,模板中的相冊是由類定義的。

<li class="12 24 15 17">Rest of my code for a single image result</li> 

所以ALBUMID的被用作類名,讓我給他們分配給jQuery的下拉類別/相冊列表是在一個模板這一個之前。我正在考慮一個SubQuery。最終,我需要結果(出於其他原因)在一個結果集中顯示。

請幫助..仍試圖推動我的方式通過學習曲線。

謝謝!

  • 帕特里克
+0

也許你沒有太打擾這一點,但類名不應以數字開頭。 http://stackoverflow.com/questions/448981/what-c​​haracters-are-valid-in-css-class-names取決於你想用它做什麼,你可以在'data'屬性中添加id。 – Jan

+0

謝謝你指出。我可能會從主列表中刪除沒有空格的另一個字段。然後,我必須弄清楚如何將它附加到這些AlbumID的開頭,並將它保持在同一行中。 :( – user1447679

+0

你可以做一些像'

  • ...
  • ' – Jan

    回答

    2
    select 
        a.[ImageID], 
        a.ImageFile, 
        a.[ImageTitle], 
        a.[ImageCaption], 
        a.[Description], 
        a.[Active], 
        c.[ListingID], 
        c.[Active], 
        c.[LevelID], 
        c.[Title], 
        stuff 
        (
         (
         select ' ' + CAST(TT.AlbumID AS VARCHAR(10)) 
         from BD_AlbumGallery as TT 
         where TT.[ImageID] = A.[ImageID] 
         for xml path(''), type 
         ).value('data(.)', 'nvarchar(max)') 
        , 1, 1, '') as Listings 
    from BD_Gallery as A 
        left outer join BD_Listing as C on a.ListingID = c.ListingID 
    where 
        a.ListingID = @passedListingID and 
        a.Active = 1 and c.Active = 1 and 
        c.LevelID > 5 
    
    +0

    Roman,感謝您的快速回復。我遇到了一些小問題,但你似乎正在讓我走上正軌。我剝去了一切,這就是發生了什麼。可以說我擁有4個具有以下ID(1,2,3,4)的相冊,並且這些ID也將用作我的LI中的類。如果我將圖像添加到相冊1,「列表」的SQL結果爲空。如果我將它添加到專輯2,現在在1和2 ...上市結果是(2),而不是(1 2),這是我需要的。奇怪的。如果我將它添加到專輯3中,結果是(2 3),這很奇怪。此外,我得到重複的結果 – user1447679

    +0

    跑出房間。獲得重複的結果。我只需要一次檢索圖像,但上面提到的「列表」列需要列出圖像所在的專輯的ID。因此,如果圖像在專輯1,2,3和4中,則需要明確說明(1 2 3 4)沒有()。這讓我很接近。請提供更多建議。非常感謝你。 – user1447679

    +0

    我已更正答案。你能提供一些測試數據嗎? –

    相關問題