Access: Problema Query - Tabelle

domenica 09 marzo 2014 - 18.07
Tag Elenco Tags  Access (.mdb)

gianky_fb Profilo | Newbie

Salve a tutti. Sono Nuovo del forum e anche un neofita di access.
Vi spiego il mio problema:
Ho un database access con diverse tabelle collegate tra cui la tabella CARICO GIORNO dove ci sono diversi campi tra cui quelli[data], [utente], [mattina], [pomeriggio], dove, in poche parole, ogni [utente] può essere intervenire in [date] diverse, di [mattina] e/o [pomeriggio]. [utente] è un campo di testo, [data] di data/ora, [mattina] e [pomeriggio] numerici. Ho creato una query dove posso prendere questi dati, dando due date tra le quali sono comprese i valori che mi interessano...ma ho un grosso problema...come faccio a calcolarmi la media e la dev.st di tutti i dati [mattina] e [pomeriggio] insieme, per ogni [utente] in queste date...esempio esplicativo della tabella CARICO GIORNO qui sotto.

[UTENTE] | [DATA] | [MATTINA] | [POMERIGGIO]
a 11/02/2014 4 5
b 11/02/2014 3 -
a 12/02/2014 - 7
a 13/02/2014 9 3
b 13/02/2014 2 4
c 13/02/2014 3 5

Come faccio a calcolarmi la media cumulativa di [mattina] e [pomeriggio] (quindi 4+5+3+7+9+3+2+4+3+5 / 10), di a,b,c nelle date che vanno dal'11/02/2014 al 14/02/2014??????
Spero di essere stato chiaro...grazie mille!

renarig Profilo | Expert

Non ho ben capito tutto, comunque se hai gia una query che ti restituisce
- MATTINA
- POMERIGGIO
- DATA
prova a fare come sotto, Tieni presente che le date nelle query di access si scrivono all' inglese
quindi 14 Febbraio 2014 lo scrivi cosi #2/14/2014#

Poi vedo nell'esempio che i giorni con zero connessioni per te non fanno media, Perche ??
SELECT (Sum([NomeQuery].[MATTINA])+Sum([NomeQuery].[POMERIGGIO]))/(Count(*)*2) AS Media FROM NomeQuery HAVING (((NomeQuery.DATA)>#2/11/2014# And (NomeQuery.DATA)<#2/14/2014#)) ;

gianky_fb Profilo | Newbie

Grazie Mille Renarig!
Si ho risolto aggiungendo alcuni dettagli a me utili per la query, ovvero le medie per ogni utente...si conto solo le utenze realmente eseguite per prendere la media per una mia esigenza...solo che adesso il problema non è completato...mi servirebbe calcolare anche la Dev.St, il Max e il Min dei Campi [mattina] e [pomeriggio] insieme...come fare?

renarig Profilo | Expert

Sulla scorta di questi dati sotto scrivici che risultato vuoi ottenere
se filtrati fra il 10/02/2014 e il 14/02/2014

[UTENTE] | [DATA] | [MATTINA] | [POMERIGGIO]
a ------- 11/02/2014 ----- 4 --------------- 5
b ------- 11/02/2014 ----- 3 --------------- -
a ------- 12/02/2014 ----- - ---------------- 7
a ------- 13/02/2014 ----- 9 --------------- 3
b ------- 13/02/2014 ----- 2 --------------- 4
c ------- 13/02/2014 ----- 3 --------------- 5
a ------- 09/02/2014 ----- 4 --------------- 5
b ------- 08/02/2014 ----- 3 --------------- -
b ------- 16/02/2014 ----- 2 --------------- 4
c ------- 17/02/2014 ----- 3 --------------- 5

.

gianky_fb Profilo | Newbie

>Sulla scorta di questi dati sotto scrivici che risultato vuoi
>ottenere
>se filtrati fra il 10/02/2014 e il 14/02/2014
>
>[UTENTE] | [DATA] | [MATTINA] | [POMERIGGIO]
>a ------- 11/02/2014 ----- 4 --------------- 5
>b ------- 11/02/2014 ----- 3 --------------- -
>a ------- 12/02/2014 ----- - ---------------- 7
>a ------- 13/02/2014 ----- 9 --------------- 3
>b ------- 13/02/2014 ----- 2 --------------- 4
>c ------- 13/02/2014 ----- 3 --------------- 5
>a ------- 09/02/2014 ----- 4 --------------- 5
>b ------- 08/02/2014 ----- 3 --------------- -
>b ------- 16/02/2014 ----- 2 --------------- 4
>c ------- 17/02/2014 ----- 3 --------------- 5
>
>.
Faccio una premessa: quelle date le ho scritte per semplificare le cose...in realtà nella query c'è la richiesta di inserire le date di inizio e fine valutazione. Ma consideriamo il caso specifico fra il 10/02/2014 e il 14/02/2014
Quindi eliminiamo gli ultimi 4 record
>a ------- 09/02/2014 ----- 4 --------------- 5
>b ------- 08/02/2014 ----- 3 --------------- -
>b ------- 16/02/2014 ----- 2 --------------- 4
>c ------- 17/02/2014 ----- 3 --------------- 5
Perchè fuori range di date
Restano questi record
>a ------- 11/02/2014 ----- 4 --------------- 5
>b ------- 11/02/2014 ----- 3 --------------- -
>a ------- 12/02/2014 ----- - ---------------- 7
>a ------- 13/02/2014 ----- 9 --------------- 3
>b ------- 13/02/2014 ----- 2 --------------- 4
>c ------- 13/02/2014 ----- 3 --------------- 5
Allora vorrei sapere il valore massimo, minimo e dev.st. di [mattina] e [pomeriggio] di ogni singolo utente quindi se consideriamo gli utenti:
a) MAX 9, MIN 3 DEV. ST. 2,41
b) MAX 4, MIN 2, DEV.ST. 1
c) MAX 5, MIN 3, DEV.ST. 1,41

renarig Profilo | Expert

Un bel casino

Prova con questa:
PARAMETERS DalGiorno DateTime, AlGiorno DateTime; SELECT Z01.UTENTE, Max(Z01.MaPo) AS Maaa, Min(Z01.MaPo) AS Miii, StDev(Z01.MaPo) AS Dvvv FROM ( SELECT NomeQuery.UTENTE, NomeQuery.MATTINA AS MaPo FROM NomeQuery WHERE (((NomeQuery.DATA)>[DalGiorno] And (NomeQuery.DATA)<[AlGiorno])) UNION ALL SELECT NomeQuery.UTENTE, NomeQuery.POMERIGGIO AS MaPo FROM NomeQuery WHERE (((NomeQuery.DATA)>[DalGiorno] And (NomeQuery.DATA)<[AlGiorno])) ) AS Z01 GROUP BY Z01.UTENTE ;

Facci sapere

gianky_fb Profilo | Newbie

Funziona Funziona! Grazie mille!!
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2025
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5