고객이 상품 카탈로그를 보낼 주소 목록을 생성해야합니다. 특정 우편 번호 (Y)에 특정 수의 카탈로그 (X)를 보내려합니다. [이 우편 번호의 평균 수입과 관련이 있습니다.]SQL Server 테이블에서 각 카테고리에 대해 다른 수의 행 검색
CatalogRequests
및 AddressList
이 테이블은 SQL Server 2008 R2에 있습니다.) =
AddressList
| Zip | QuantityRequested |
-------------------------------
| 12345 | 150 |
| 13445 | 800 |
| 45678 | 200 |
| 41871 | 350 |
| 77777 | 125 |
그냥, 주소의 목록입니다
CatalogRequests
SQL 쿼리로이 작업을 시도하는 동안 잠시 머리를 숙이고 나서 C# 프로그램을 작성하여 필요한 작업을 수행했습니다 (기본적으로 SQL 쿼리를 여러 개 생성 - 각각에 대해 하나씩). CatalogRequests
에 기록).
내 질문은 어떻게 하나의 SQL 쿼리로이 작업을 수행 할 수 있습니까? 저는이 시점에서 궁금 해서요. 할 수있는 방법이있는 것 같아요. 그냥 뭔가 빠졌어요. 또는 가능하지 않을 수도 있고 나는 미쳤다 =)
결과 집합은 CatalogRequest
의 요구 사항을 충족하는 의 레코드입니다 (예 : 우편 번호 12345의 150 레코드, 우편 번호가 800 인 레코드). 13445 등).
DECLARE @SQL varchar(max)
SET @SQL = 'USE Database'
SELECT @SQL = @SQL + 'SELECT TOP '
+ QuantityRequired
+ ' * FROM AddressList WHERE Zip = '
+ Zip
+ ' UNION ALL'
FROM CatalogRequests
SET @SQL = LEFT(@SQL, (LEN(@SQL - 10))) -- remove last UNION ALL
PRINT (@SQL)
-- EXEC (@SQL)
확인 동적 SQL에 대한 표준 참조에 대한 링크 :
이 현상금 주셔서 감사가! –
여러분, @ CodeMagician을 환영합니다! 귀하의 솔루션은 당시 나를 정말로 도와주었습니다. 게다가, 나는 [현상금 관련 모자] (http://winterbash2014.stackexchange.com/)를 원했다 ;-) – jadarnel27