Visual StudioのテーブルアダプタでSQL文として作成されたサブクエリから結果を取得しようとしています。プロジェクトはOracleデータベースにリンクされています。私はもともと、Oracleでうまく動作する「with」節を使用しようとしていましたが、Visual StudioのSQL問合せとはそれほど違いはありません。 "with"句を使用すると、エラーが "クエリを解析できません"と表示されました。 "with"句がないと、最初の2つのクエリ(クエリ1とクエリ2)がテーブルアダプターでうまく機能するようになりましたが、メインクエリを追加するとエラー 'SELECT'が認識されません。 FYI:データセットが接続するがVisual Studio側では動作しないストアドプロシージャを使用しようとしました。今のところ、ストアドプロシージャではなくSQLステートメントでこれを実現したいと考えています。どんな助けもありがとうございます。Visual Studio 3のクエリでCTEを使用する
--- Query 1 ---
SELECT * from (select
ss.startdate
,ss.enddate
,s.segid
,s.segno
,s.stats
,sp.spo
,p.pro
FROM
Spon ss
,Segs s
,pro p
,spo sp
WHERE
and ss.segid = s.segid
and ss.spoid = sp.spoid
and p.proid = sp.proid
and ss.startdate <= (par_date1)
and ss.enddate >= (par_date2)
) sss,
--- Query 2 ---
(
SELECT
p.pickid
,p.segid
,p.spid
,p.pickdate
,p.pickqty
FROM picks p
WHERE
(P.Pickdate is null or P.Pickdate between (par_date1) and ((par_date2)) )
) ppp
--- Query 3 (MAIN Query - Queries data pulled from Query 1 and Query 2) ---
SELECT
sss.shipid
,sss.segno
,To_Char(sss.StartDate, 'DD-MON-YYYY') As StartDate
,To_Char(sss.EndDate, 'DD-MON-YYYY') As EndDate
,sss.Spo
,sss.Pro
,To_Char(ppp.PickDate, 'DD-MON-YYYY') As PickDate
,To_Char(Max(ppp.PickDate), 'DD-MON-YYYY') As LastPick
,Round(SUM(ppp.PickQty/(Count(distinct sss.spid)) ,2) As Avrg
,Count(sss.spid) As TtlPicks
,sum(ppp.PickQty) As Ttls
FROM sss, ppp
WHERE
ppp.spid(+) = sss.spid
GROUP BY
sss.shipid
,sss.segno
,sss.Spo
,sss.Pro
,To_Char(sss.StartDate, 'DD-MON-YYYY')
,To_Char(sss.EndDate, 'DD-MON-YYYY')
,To_Char(ppp.PickDate, 'DD-MON-YYYY')
ありがとう、私はすでに持っているものだと思います。 – Raspberry
@ラズベリー - あなたは何を意味するのか分かりません。既に持っているのは3つの異なるクエリです。私が示すのは、1つのクエリです。私が提案したのは:クエリー3を取ることです。 'FROM sss、ppp'と言う' FROM'節を探します。今度は、あなたのクエリの全文をコピーし、1つを「FROM」と「sss」の間に貼り付けてかっこに入れます。このようにすると、CTEではなく(WITH'句で)サブクエリまたは「インラインビュー」になります。クエリ2の全文で同じことをやってください:それをコピーし、 'sss 'と' ppp'の間に貼り付けてかっこで囲みます。 – mathguy
ああ私は見る! @mathguyの誤解をおかけして申し訳ありません。あなたのご意見ありがとうございます!私はそれを試してみましょう。 :-) – Raspberry