Как я могу суммировать и заменять данные столбцов, а также усреднять все в запросе MS Access?

StackOverflow https://stackoverflow.com/questions/889737

Вопрос

Я извлекаю данные из одной таблицы, называемой анализируемой копией, и использую их для перезаписи всей информации в другой таблице, называемой анализируемой.Столбцы, которые я сортирую, фильтрую и манипулирую, — это reads_miu_id, ReadDate, ReadTime, RSSI.В настоящее время я перемещаю данные из проанализированной копии в проанализированную, используя следующий SQL-запрос, который позволяет получить только последний раз (наивысшее значение в ReadTime, поскольку оно отформатировано по военному времени) для каждой уникальной пары reads_miu_id и ReadDate.

SELECT readings_miu_id, Reading, ReadDate, ReadTime, MIUwindow, SN, Noise, RSSI, ColRSSI,MIURSSI,Firmware,CFGDate,FreqCorr,Active,MeterType,OriginCol,ColID,Ownage,SiteID,PremID, prem_group1, prem_group2,ReadID  
    INTO analyzed  
    FROM analyzedCopy AS A  
    WHERE  ReadDate BETWEEN #04/21/09# AND #04/29/09#  AND ReadTime=  (SELECT TOP 1 analyzedCopy.ReadTime FROM analyzedCopy  
    WHERE analyzedCopy.readings_miu_id = A.readings_miu_id  AND analyzedCopy.ReadDate = A.ReadDate  
    ORDER BY analyzedCopy.readings_miu_id, analyzedCopy.ReadDate, analyzedCopy.ReadTime DESC)

   ORDER BY A.readings_miu_id, A.ReadDate, A.ReadTime DESC ; 

Мне нужно добавить в этот код возможность заносить в таблицу "анализируемую" по одной записи на каждый readings_miu_id при изменении ReadDate чтобы показать желаемый диапазон дат (в этом случае нужно будет показать что-то вроде «21 апреля 2009 г. — 29 апреля 2009 г.»), а также взять среднее значение RSSI для каждого DISTINCT reading_miu_id и вставку этого среднего значения RSSI в поле RSSI анализируемой таблицы.

В попытке подвести итог/обзор у меня есть код для вставки в таблицу всех записей из другой таблицы, где ReadTime является самым высоким для каждого уникального readings_miu_id и комбинация ReadDate.И мне нужно добавить к этому коду возможность брать средний RSSI уже отсортированных (шаг в предыдущем предложении) записей и вставлять это среднее значение в RSSI в анализируемом и вставлять диапазон дат в ReadDate в анализируемом.

Я понимаю, что, вероятно, прошу здесь многого, и если мне нужно использовать два или три разных шага или код SQL, это нормально.программа, о которой идет речь, не будет использоваться многими людьми, и моего босса не волнует, если код беспорядочный или что его запуск займет некоторое время.Меня коробит от того, что меня заставляют делать что-то так неэффективно и беспорядочно, но это то, что меня заставляют делать.

Я должен иметь возможность использовать sum() там есть функция суммирования значений RSSI, я просто не знаю, как это сделать, разделив сумму на количество для каждого DISTINCT readings_miu_id и пока я делаю все остальное, что мне нужно сделать с этими данными.Используя VB.NET 2008 и sqlServer, я мог бы пропустить каждую строку через несколько логических операторов, чтобы сделать с данными то, что мне нужно, но я не знаю, как это сделать в SQL или VBA.


Редактировать:

Если я что-то недостаточно хорошо объяснил, пожалуйста, дайте мне знать, и я постараюсь исправить и добавить информацию в меру своих возможностей.

Это было полезно?

Решение

Решайте проблему по одному.Создайте таблицы для каждого шага: АнализируемыйШаг1, АнализируемыйШаг2 и т. д.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top