1

これでほぼ完了です。最後の問題がいくつかあります。ここで、readings_miu_id が "DISTINCT" 列である上位 1 件を除いて、テーブルからすべてのレコードを削除する必要があります。つまり、最初の DISTINCT readings_miu_id 以外のすべてのレコードをテーブルから削除する必要があります。基本的な削除ステートメントを変更するだけでよいと思います。

DELETE FROM analyzedCopy2
WHERE readings_miu_id = some_value

しかし、 some_column=some_value 部分を次のように変更する方法がわかりません。

where some_column notequal to (select top 1 from analyzedCopy2 as A 
where analyzedCopy2.readings_miu_id = A.readings_miu_id)

次に、UPDATE ステートメントを使用して、クエリからテーブル (analyzedCopy2) を更新する方法を理解する必要があります (これは、テーブル AnalyzedCopy2 の列 RSSI に格納するすべての値が現在配置されている場所です)。私はこれを試しました:

UPDATE analyzedCopy2 from testQuery3 SET analyzedCopy2.RSSI = 
(select AvgOfRSSI from testQuery3 INNER JOIN  analyzedCopy2 on analyzedCopy2.readings_miu_id =  testQuery3.readings_miu_id where analyzedCopy2.readings_miu_id = testQuery3.readings_miu_id) 
where analyzedCopy2.readings_miu_id = testQuery3.readings_miu_id

どうやら更新ステートメント内で FROM を使用することはできません。何かご意見は?

私はこれを非常に非標準的な方法で行っていると確信していますが(おそらく完全に間違っていない場合でも)、vb.net2008を使用してプルして操作し、データを保存することは許可されていませんだから私は今、ms-access でsqlステートメントを使用して立ち往生しています。もちろん

4

3 に答える 3

4

MS Access の UPDATE SQL ステートメントはクエリを参照できませんが、テーブルは参照できます。そのため、クエリの結果をテーブルに格納する必要があります。

SELECT YourQuery.* 
INTO TempTable1
FROM YourQuery

これで、UPDATE クエリで TempTable1 を使用できます。

UPDATE TargetTable
INNER JOIN TempTable1 ON TempTable1.TargetTableId = TargetTable.Id
SET TargetTable.TargetField = TempTable1.SourceField

この質問に対する私の回答を参照してください。

于 2009-05-22T15:11:55.127 に答える
0

プルする必要のあるすべてのレコードの各フィールドに同じ情報が含まれていたため、複雑にしすぎました。

   SELECT DISTINCT readings_miu_id, DateRange, RSSI, ColRSSI, Firmware, CFGDate, FreqCorr, Active, OriginCol, ColID, Ownage, SiteID, PremID, prem_group1, prem_group2
FROM analyzedCopy2   
ORDER BY readings_miu_id;

readings_miu_id ごとに上位 1 レコードを取得するため。

于 2009-05-26T12:19:21.900 に答える
0

私はこのマシンにアクセスのコピーを持っていません。アクセスに手を出してから数年が経ちました。

delete from analyzedCopy2
where readings_miu_id not in (select top 1 readings_miu_id from analyzedCopy2 order by...)

(適切なトップ 1 レコードを取得するには、order by が必要です。おそらく ID で並べ替えますか?)

アクセス権のコピーがなければ、2 番目の件であなたを助ける望みはありません。私はTSQLでそれを行う方法を知っていますが、アクセスはwtfのまったく異なるやかんです:-)

于 2009-05-22T13:40:49.740 に答える