이 동일한 cte 쿼리에 대한 나의 마지막 질문은 너무 빨리 대답되었으므로 나는이 다음 질문을 당신의 SQL 전문가에게 알려줄 것이라고 생각했습니다. 내 기본 논리를 살펴볼 수 있다면 내 코드와 구문 오류를 보여줄 수 있습니다. 어떤 도움을 주시면 대단히 감사하겠습니다.SQL Server CTE "다중 부분 식별자를 바인딩 할 수 없습니다."
나는 주식 거래 시스템을 위해 3 개의 테이블을 가지고 있습니다. 기호 테이블 : 이름이 제안하는 것처럼 시세 기호, 일별 가격 책정/볼륨 테이블 : 다시 설명 된대로 각 레코드는 가격 필드와 날짜 필드 및 기호 필드를 포함하며 마지막으로 거래 날짜 테이블 : 쿼리의 모든 거래 날짜에 대한 참조 .
두 개의 필드가있는 레코드 세트를 반환하고 싶습니다. 심볼과 날짜입니다. 이 쌍은 모든 거래일과 가격 기호 표에 해당 기호에 해당하는 가격/가격 데이터가없는 기호를 나타냅니다. 이해가 되니? 내 쿼리에서 오류 메시지가 나타납니다 : "다중 부분 식별자"Symb.Symbol "바인딩 할 수 없습니다." 여기 내 CTE 쿼리 :
WITH Symb AS
(
SELECT Symbol
FROM tblSymbolsMain
),
DatesNotNeeded AS
(
SELECT Date
FROM tblDailyPricingAndVol
WHERE (tblDailyPricingAndVol.Symbol = Symb.Symbol)
),
WideDateRange AS
(
SELECT TradingDate
FROM tblTradingDays
WHERE (TradingDate >= dbo.NextAvailableDataDownloadDateTime()) AND (TradingDate <= dbo.LatestAvailableDataDownloadDateTime())
),
DatesNeeded AS
(
SELECT TradingDate
FROM WideDateRange wdr
WHERE NOT EXISTS (SELECT * FROM DatesNotNeeded)
)
SELECT Symb.Symbol, DatesNeeded.TradingDate
FROM Symb CROSS JOIN DatesNeeded
와우. 고마워. – StatsViaCsh
많은 환영, 내가 도울 수있어서 다행 :) – Eric