60 개 이상의 SQL 쿼리를 하나의 쿼리로 결합하고 BCP를 통해 결과를 하나의 단일 .CSV
파일 로 내보내려고 합니다.
나는 그것들을 결합하고 UNION ALL
1 개의 BCP 명령을 실행하는데, 그것은 2 개의 쿼리로 작동했지만 40 이상으로는 작동하지 않았습니다 :-)
오류가 발생합니다.
쿼리 힌트가 최대 명령 버퍼 크기 인 8191 바이트 (24324 바이트 입력)를 초과합니다.
쿼리는 거의 동일 Location
하며 끝 부분 만 매번 다릅니다.
SELECT
ISNULL(REPLACE(LEFT(SUM([Sales Amount (Actual)]) * 1.21, LEN(SUM([Sales Amount (Actual)])) -18 ),'.', ','),0) Result
FROM
_DBHERE_
WHERE
([Item] = 1)
AND ([Date] = CAST(GETDATE() AS DATE))
AND ([Location] = '1')
SELECT
ISNULL(REPLACE(LEFT(SUM([Sales Amount (Actual)]) * 1.21, LEN(SUM([Sales Amount (Actual)])) -18 ),'.', ','),0) Result
FROM
_DBHERE_
WHERE
([Item] = 1)
AND ([Date] = CAST(GETDATE() AS DATE))
AND ([Location] = '2')
이 시도
SELECT
[Location]
, ISNULL(REPLACE(LEFT(SUM([Sales Amount (Actual)]) * 1.21, LEN(SUM([Sales
Amount (Actual)])) -18 ),'.', ','),0) Result
FROM
_DBHERE_
WHERE [Item] = 1
AND [Date] = CAST(GETDATE() AS DATE)
AND [Location] IN ('1', '2', ......) -- replace ... with comma separated list of required values
GROUP BY [Location]
;
[Location] 값을 제한하는 경우 "AND [Location] IN"줄만 필요합니다. 모든 위치를 원하는 경우이 라인은 필요하지 않습니다. 또는 설명대로 위치 테이블에 참여하고 위치를 제한하는 데 필요한 모든 기준을 사용할 수 있습니다.
OP의 의견에 따라 업데이트 됨 [위치] 테이블이 있다고 가정하면 다음과 같이 할 수 있습니다.
SELECT
L.[Location]
, ISNULL(REPLACE(LEFT(SUM(S.[Sales Amount (Actual)]) * 1.21, LEN(SUM(S.[Sales
Amount (Actual)])) -18 ),'.', ','),0) Result
FROM [Location] L
LEFT OUTER JOIN [SalesData] S
ON S.[Location] = L.[Location]
AND S.[Item] = 1
AND S.[Date] = CAST(GETDATE() AS DATE)
WHERE L.[Location] IN ('1', '2', ......) -- replace ... with comma separated list of required values
GROUP BY L.[Location]
;
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다