まず最初にこれが最悪の事だと知っていますが、オフチャンスで誰かがこれについてどうやって行くのか考えています。テーブル内のグループのランダムな値を引き出すMSAccess/sql
主な質問:データ内のグループの量に基づいてランダムな値を生成するにはどうすればよいですか?
例:
tblBill
ID FirstName Bill Tax Group
1 Mark $40 $6 1
2 Fred $25 $2 1
3 Jane $25 $2 1
4 Brad $40 $6 2
5 Amy $25 $2 2
6 Pat $25 $2 2
7 Lilly $25 $2 2
私が欲しい:
[グループ1のためにランダムな名前]
[グループ2のためにランダムな名前]
私の現在の(悪い)ソリューション:
2つのクエリを作成:
ID FirstName
3 Jane
6 Pat
(と、それはリフレッシュにランダム化されます)
しかし、私はちょうど2グループ以上のものを持っている、方法がある:
SELECT qryRnd1.[ID], qryRnd1.[FirstName] from qryRnd1
UNION ALL SELECT qryRnd2.[ID], qryRnd2.[FirstName] from qryRnd2;
は私与える:
QryRand1
SELECT TOP 1 tblBill.FirstName, tblBill.ID
FROM tblBill
WHERE tblBill.Group=1
ORDER BY Rnd(ID);
QryRand2
SELECT TOP 1 tblBill.FirstName, tblBill.ID
FROM tblBill
WHERE (((tblBill.Group)='2'))
ORDER BY Rnd(ID);
組合を作成存在するn個のグループのそれぞれに対してランダムな値を生成するテーブルを作成しますか?
私が30のグループを持っていた場合、それぞれのグループに対してqryを作成してから30のクエリを結合する必要がありますか?これは唯一の解決策ですか? ROW_NUMBER()
は、各グループの各レコードの行番号を生成しているし、それがその行をランダムだと
SELECT *
FROM
(
SELECT tblBill.FirstName,
tblBill.ID,
ROW_NUMBER() OVER (PARTITION BY group ORDER BY NewID()) as randomRow
FROM tblBill
) as sub
WHERE sub.randomRow = 1
:
AccessまたはSQL Serverを使用していますか?彼らは同じことではありません。 –
アクセスが必要ですが、テーブルをSQLサーバーに移動することができます – arsarc
ここでは2つの異なる質問があるようです。 1つはランダムな行を取得する方法、もう1つはグループ間で値を分割する方法です。実際の質問は何ですか?いくつかのddl、サンプルデータ、および望ましい出力を投稿すれば、これはもっとはっきりと分かります。 –