سؤال

مرحبا من SQL nO0b,
لدي ثلاثة Select بيانات أريد الانضمام:

حدد 2 FOR XML اختر التي تريد إلحاق يختار 1 & 3 (والتي ببساطة عرض بعض النص) كنوع من رأس/تذييل الصفحة.

كل ثلاثة يختار تعمل على النحو المنشود و شكل ثلاثة أجزاء من طيف شكلت بودكاست .xml, ولكن أنا في حاجة إليها في نهاية المطاف في واحدة نتيجة لذلك أنا في نهاية المطاف يمكن أن ينقذ به .ملف xml (والتي سوف تكون وجهتي المقبلة صداع, أعتقد).

لقد حاولت من التباديل +, UNION, ، JOIN أن بلدي الخبرة العقل يمكن أن تأتي مع ، ولكن دون جدوى.

حدد #1 (ببساطة بعض النص)

Select  '<?xml version=''1.0''?>
<rss xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd"  xmlns:atom="http://www.w3.org/2005/Atom" version="2.0">
    <channel>
      <atom:link href="http://www.mysite.com/podcast/podcast.xml" rel="self" type="application/rss+xml" />
  <itunes:image href="http://www.mysite.com/Portals/0/Images/Audio/podcast_logo.jpg"/>
  <link>http://www.mysite.com/Audio.aspx</link>
<title>My Podcast</title>
<description>My Podcast's Description</description>
<language>en-us</language>
<copyright>&#xA9; 2010</copyright>
      <itunes:subtitle>Subtitle</itunes:subtitle>
      <itunes:owner>
        <itunes:name>Name</itunes:name>
        <itunes:email>user@domain.com</itunes:email>
      </itunes:owner>
      <itunes:category text="Religion &amp; Spirituality">
        <itunes:category text="Christianity" />
      </itunes:category>
      <itunes:explicit>No</itunes:explicit>
      <ttl> 120 </ttl>'   

اختر رقم 2 (بياناتي)

Select 
(Select Cast(FieldValue as nvarchar(max)) from dbo.UserDefinedData where UserDefinedFieldId = 305 and UserDefinedRowId = item.UserDefinedRowId) as [title]
,(Select 'Today''s Program is ' + Cast(FieldValue as nvarchar(max)) from dbo.UserDefinedData where UserDefinedFieldId = 305 and UserDefinedRowId = item.UserDefinedRowId) as [description]  
,(Select Cast(Cast(FieldValue as nvarchar(max)) as DateTime) from dbo.UserDefinedData where UserDefinedFieldId = 306 and UserDefinedRowId = item.UserDefinedRowId) as [pubdate]
,(Select 'http://www.mysite.com/Portals/0/AudioFiles/RadioArchives/' + Cast(FieldValue as nvarchar(max)) from dbo.UserDefinedData where UserDefinedFieldId = 308 and UserDefinedRowId = item.UserDefinedRowId) as [guid]
 From 
dbo.UserDefinedRows item
 Where 
ModuleId = 820
 and UserDefinedRowID in (select UserDefinedRowID from UserDefinedData where UserDefinedFieldID = 306 and Cast(Cast(FieldValue as nvarchar(max)) as DateTime) between '2010-Nov-11' and '2010-Nov-18') 
 Order By 
[pubdate] DESC
for XML AUTO,ELEMENTS

حدد #3 (أكثر من نص)

Select '</channel>
</rss>'

(أنا باستخدام MS SQLSMS 2008.) (الطبيعة المعقدة الثانية select ويرجع ذلك إلى حقيقة أن يتم استرداد البيانات من دوتنت نوك "معرف من قبل المستخدم الجدول/ & شكل قائمة" الذي يجب أن يكون أولا "بالارض".)

سيكون موضع تقدير أي مساعدة شكرا

هل كانت مفيدة؟

المحلول

Declare @V1 VarChar(Max), @V2 VarChar(Max), @V3 VarChar(Max)

Select @V1 = ...

Set @V2 = (Select ...)

Select @V3 = ...

Select @V1+@V2+@V3

بدلا من ذلك, يلقي #1 و #3 إلى XML.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top