2009-02-27 15 views
2

このCAMLクエリをお手伝いできますか?私がAscending属性をTRUEからFALSEにフリップすると(TrueFalseも試した)、結果セットの順序は変更されません。CAMLクエリが正しく注文されていません

残りのCAMLは正しいですが、ツールによって生成されており、適切な結果が戻されています。

<Where> 
    <And> 
    <And> 
     <Eq> 
     <FieldRef Name="Branch"/> 
     <Value Type="Text">Camp 1</Value> 
     </Eq>  
     <Eq> 
     <FieldRef Name="Type"/> 
     <Value Type="Choice">Day</Value> 
     </Eq> 
    </And> 
    <Geq> 
     <FieldRef Name="StartDateTime"/> 
     <Value Type="DateTime">2009-01-05T00:00:00Z</Value> 
    </Geq> 
    </And> 
    <OrderBy> 
    <FieldRef Ascending="TRUE" Name="Title" /> 
    </OrderBy> 
</Where> 

答えて

9

WhereByはWhere句の外にある必要はありませんか?

<Where> 
    <And> 
    <And> 
     <Eq> 
     <FieldRef Name="Branch"/> 
     <Value Type="Text">Camp 1</Value> 
     </Eq>  
     <Eq> 
     <FieldRef Name="Type"/> 
     <Value Type="Choice">Day</Value> 
     </Eq> 
    </And> 
    <Geq> 
     <FieldRef Name="StartDateTime"/> 
     <Value Type="DateTime">2009-01-05T00:00:00Z</Value> 
    </Geq> 
    </And> 
    </Where> 
<OrderBy> 
    <FieldRef Ascending="TRUE" Name="Title" /> 
    </OrderBy> 

は、私は上記の答えに同意http://msdn.microsoft.com/en-us/library/ms442728.aspx

+0

doh!私はずっと質問を見つめていたので、明らかな答えは見えませんでした。はい、私はクエリを生成するツールを構築しました。 – Jason

4

を参照してください、<クエリ>は> <外でなければなりません。 ものDateTimeフィールドと比較するとき、それはIncludeTimeValue属性を含めることが一般的に良いアイデアだということに注意してください:

<Geq> 
     <FieldRef Name="StartDateTime"/> 
     <Value Type="DateTime" IncludeTimeValue="FALSE">2009-01-05T00:00:00Z</Value> 
</Geq> 

、偽またはtrueに設定し、あなたがあなたの時間値を含めるかどうかにするかどうかに応じてクエリ。

+0

+1のIncludeTimeValue – Jason

0

私はClient OM CamlQueryオブジェクトを使用して日付の注文を取得しようとほとんど一週間を費やしました。最後に、私は私が

camlQuery.DatesInUtc = true; 

を設定しなければならなかったことに気づいたあなたができるだけ早くあなたが移動すると、SharePointが(私たちの環境では)デフォルトでUTCとしてその日付を解釈することをネイティブオブジェクトモデルとSPQueryオブジェクトを使用している場合ように私には思えますClientOMでCamlQueryオブジェクトにこのパラメータを設定する必要があります。

関連する問題