1

アルバムで画像ギャラリーを作成しています。ギャラリーの所有者は、最初に 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

問題は、データが LI 内で取得され、もちろん一度に 1 つずつ取得されることです...それは明らかだと思います...私のギャラリー テンプレートに適切に表示することです。

私が抱えている唯一の問題は、@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 ドロップダウン カテゴリ/アルバム リストにそれらを割り当てることができます。サブクエリを考えていました。最終的には、結果を 1 つの結果セットに表示する必要があります (他の理由から)。

助けてください.. まだ学習曲線を進めようとしています。

ありがとう!

  • パトリック
4

1 に答える 1

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
于 2012-10-22T06:43:12.137 に答える