2017-05-13 9 views
0

私はWebアプリケーションで作業していますが、長時間実行されたストアドプロシージャがあり、何かを見つけようとすると、ストアドプロシージャのこの部分を抽出しましたが、動作しません。これをやった人はエイリアスの後にエイリアスを作成しています。私はそれをうまく処理するセクションを得たいだけです。結末について不平を言うが、すべての中括弧は一致しているようだ。前もってありがとうございます..WITH句の構文エラー

FInputsは別のストアドプロシージャです。全体がBASE ..と呼ばれています。この結果は、すべてがUと呼ばれる一時テーブルに置かれていました。私は中断しようとしていますそれは別のセクションに分かれています。

;WITH Base AS 
(
SELECT 
    * 
FROM F_Inputs(1,1,100021) 
), 
U AS 
(
SELECT 
    ISNULL(q.CoverPK,r.CoverPK) AS CoverPK, 
    OneLine, 
    InputPK, 
    ISNULL(q.InputName,r.InputName) AS InputName, 
    InputOrdinal, 
    InputType, 
    ParentPK, 
    InputTriggerFK, 
    ISNULL(q.InputString,r.InputString) AS InputString, 
    PageNo, 
    r.RatePK, 
    RateName, 
    Rate, 
    Threshold, 
    ISNULL(q.Excess,r.Excess) AS Excess, 
    RateLabel, 
    RateTip, 
    Refer, 
    DivBy, 
    RateOrdinal, 
    RateBW, 
    ngRequired, 
    ISNULL(q.RateValue,r.RateValue) AS RateValue, 
    ngClass, 
    ngPattern, 
    UnitType, 
    TableChildren, 
    TableFirstColumn, 
    parentRatePK, 
    listRatePK, 
    NewParentBW, 
    NewChildBW, 
    ISNULL(q.SumInsured,0) AS SumInsured, 
    ISNULL(q.NoItems,0) AS NoItems, 
    DisplayBW, 
    ReturnBW, 
    StringBW, 
    r.lblSumInsured, 
    lblNumber, 
    SubRateHeading, 
    TrigSubHeadings, 
    ISNULL(q.RateTypeFK,r.RateTypeFK) AS RateTypeFK, 
    0 AS ListNo, 
    0 AS ListOrdinal, 
    InputSelectedPK, 
    InputVis, 
    CASE 
     WHEN ISNULL(NewChildBW,0) = 0 
     THEN 1 
     WHEN q.RatePK is NOT null 
     THEN 1 
     ELSE RateVis 
    END AS RateVis, 
    RateStatus, 
    DiscountFirstRate, 
    DiscountSubsequentRate, 
    CoverCalcFK, 
    TradeFilter, 
    ngDisabled, 
    RateGroup, 
    SectionNo 
FROM BASE R 
LEFT JOIN QuoteInputs Q 
    ON q.RatePK = r.RatePK 
    AND q.ListNo = 0 
    AND q.QuoteId = 100021) 
+0

質問文に「構文エラー」 – Luke

+0

メッセージレベル102、レベル1、状態1、行75を入れてください。 ')'の近くに構文が正しくありません。 – Luke

+0

コードは、オンザフライのBASEとUの2つのビューを宣言します。例えば。 'AND q.QuoteId = 100021)select * from u;' –

答えて

0

さて、コメント欄の問題は既に説明しました。私はここでもう一度やっているので、将来の読者は答えを見つけやすくなります。

WITH句はクエリの一部です。それは例えば、オンザフライビューを作成します。

with toys as (select * from products where type = 'toys') select * from toys; 

クエリがなければ終わりに、ステートメントが無効である(そしてとにかくあまり意味がありません。一つは、後で使用するため永久ビューを望んでいた場合代わりにCREATE VIEWを使用します)。

関連する問題