クライアントが商品カタログを送信するアドレスのリストを生成する必要があります。 [特定の郵便番号(Y)に特定の数のカタログ(X)を送信したい[これは、これらの郵便番号の平均所得と関係している]SQL Serverテーブルから各カテゴリの行数を取得します
私はSQL Server 2008 R2で2台のテーブルを持っている:CatalogRequests
とAddressList
)=
AddressList
| Zip | QuantityRequested |
-------------------------------
| 12345 | 150 |
| 13445 | 800 |
| 45678 | 200 |
| 41871 | 350 |
| 77777 | 125 |
だけでは、アドレスのリストである:
CatalogRequests
私はSQLクエリでこれをやろうとしている間に頭を抱えてしまいました。そして、私がやらなければならなかった小さなC#プログラムを書きました(基本的には、 CatalogRequests
に記録)。
私の質問は、どのように私はこれを1つのSQLクエリで行うことができましたか?私はちょうどこの時点で興味があります、それを行う方法があるように思えます、そして、私はただ何かを欠いています。または可能でない可能性があり、私は夢中です=)
結果セットは、CatalogRequest
の要件を満たすAddressList
のレコードです(たとえば、郵便番号が12345の150レコード、郵便番号が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