Query

di il
9 risposte

Query

Buongiorno a tutti

Ho una tabella "ORDINI CLIENTI" con i seguenti dati:
AZIENDA, data ordine NOrdine, imponibile, iva
Da questa ho ricavato una query che ho chiamato "FATTURATO COMPLESSIVO" e che riporta, oltre ai dati della tabella anche:
SOMMA DI IMPONIBILE, IVA (%), Totale (Somma di imponibile + Percentuale IVA) e L'anno con una colonna aggiunta (Year([Data Ordine]) con criterio
Year(Now())
Quindi questa query mi riporta tutti gli ordini inseriti per l'anno 2016
Poi ho creato un'altra querry chiamata "FATTURATO COMPLESSIVO ANNO PRECEDENTE" identica con le stesse caratteristiche per visualizzare gli ordini dell'anno 2015. Unica differenza sta nel criterio di ricerca della colonna ANNO che l'ho cambiato in "Year(Now())-1"
Questa query mi da tuti gli ordini dell'anno 2015
Funziona tutto
Ora vorrei creare una query che mi riporti sia i dati dell'anno 2015 che quelli del 2016.
Se lo faccio, raccogliendo i dati dalle rispettive query,questi mi vengono tutti duplicati dato che entrambe le query in questione fanno capo ad un unica tabella.
Es: se metto: Azienda, TOTALE ( preso dalla query FATTURATO COMPLESSIVO), TOTALE ( preso dalla query....ANNO PRECEDENTE)
tutti i dati sono doppi.
Come posso fare per che ciò non accada?

Grazie

9 Risposte

  • Re: Query

    Tato ha scritto:


    ...
    Ho una tabella "ORDINI CLIENTI" con i seguenti dati:
    AZIENDA, data ordine NOrdine, imponibile, iva
    Da questa ho ricavato una query che ho chiamato "FATTURATO COMPLESSIVO" e che riporta, oltre ai dati della tabella anche:
    SOMMA DI IMPONIBILE, IVA (%), Totale (Somma di imponibile + Percentuale IVA) e L'anno con una colonna aggiunta (Year([Data Ordine]) con criterio
    Year(Now())
    Quindi questa query mi riporta tutti gli ordini inseriti per l'anno 2016
    Poi ho creato un'altra querry chiamata "FATTURATO COMPLESSIVO ANNO PRECEDENTE" identica con le stesse caratteristiche per visualizzare gli ordini dell'anno 2015. Unica differenza sta nel criterio di ricerca della colonna ANNO che l'ho cambiato in "Year(Now())-1"
    Questa query mi da tuti gli ordini dell'anno 2015
    ...
    Posta le query in SQL perché così non si capisce molto.
    Abbozza anche uno schema delle colonne/campi che vorresti nella query finale.
  • Re: Query

    Perdonami ma sono un autodidatta....come faccio a postare la query in SQL?
    Scusaaaaa
  • Re: Query

    Tato ha scritto:


    Perdonami ma sono un autodidatta....come faccio a postare la query in SQL?
    Tra le visualizzazioni disponibili della query, oltre alle consuete "struttura" e "foglio dati" c'è anche SQL. E' un testo. Copi - incolli qui, racchiudendo il tutto tra i tag CODE, tipo questo (ma senza gli spazi nelle parentesi quadrate, io li ho messi per far vedere come si scrive) [ code ]SELECT ... FROM ... WHERE ... [ / code] ed apparirà così
    SELECT ... FROM ... WHERE ... 
  • Re: Query

    Se i campi sono esattamente gli stessi nelle due query, potresti fare una UNION:

    SELECT * FROM query1
    UNION
    SELECT * FROM query2

    ed ottieni due righe con i dati del 2015 e 2016.
  • Re: Query

    Riporto con esattezza.
    DATI TABELLA: Ordini Clienti
    IDOrdine,IDCliente, OrdineN, Ragione Sociale, DataOrdine, Azienda, Imponibile, Iva
    DATI QUERY FATT.COMPLESSIVO (anno 2016)
    Azienda, Somma di Imponibile, Iva, Totale ( Somma di imponibile+Iva), Anno (Colonna aggiunta: Year([Data Ordine]) con criterio di ricerca Year(Now())
    DATI QUERY FATT.ANNO PRECEDENTE (anno 2015)
    Azienda, Somma di Imponibile, Iva, Totale ( Somma di imponibile+Iva), Anno (Colonna aggiunta: Year([Data Ordine]) con criterio di ricerca Year(Now())-1
    Ora vorrei creare una query che riporti sia i dati dell'anno 2015 che dell'anno 2016.
    Se lo faccio inserendo i dati che mi interessano presi da entrambe le query e cioè
    Anno, Somma di imponibile, totale, questi appaiono tutti doppi

    come si può evitare?
    Spero di essere stato più chiaro
  • Re: Query

    ANNO 2016
    SELECT [Ordini Clienti].Azienda, Sum([Ordini Clienti].Imponibile) AS SommaDiImponibile, [Ordini Clienti].Iva, Sum([Imponibile]*(1+[Iva])) AS Totale, Year([Data Ordine]) AS Anno
    FROM [Ordini Clienti]
    GROUP BY [Ordini Clienti].Azienda, [Ordini Clienti].Iva, Year([Data Ordine])
    HAVING (((Year([Data Ordine]))=Year(Now())))
    ORDER BY [Ordini Clienti].Azienda;

    ANNO 2015
    SELECT [Ordini Clienti].Azienda, Sum([Ordini Clienti].Imponibile) AS SommaDiImponibile, [Ordini Clienti].Iva, Sum([Imponibile]*(1+[Iva])) AS Totale, Year([Data Ordine]) AS Anno
    FROM [Ordini Clienti]
    GROUP BY [Ordini Clienti].Azienda, [Ordini Clienti].Iva, Year([Data Ordine])
    HAVING (((Year([Data Ordine]))=Year(Now())-1))
    ORDER BY [Ordini Clienti].Azienda;
  • Re: Query

    gibra ha scritto:


    Se i campi sono esattamente gli stessi nelle due query, potresti fare una UNION:

    SELECT * FROM query1
    UNION
    SELECT * FROM query2

    ed ottieni due righe con i dati del 2015 e 2016.
    Presumo che questo vada inserito nei criteri di ricerca...giusto?
  • Re: Query

    gibra ha scritto:


    Se i campi sono esattamente gli stessi nelle due query, potresti fare una UNION:

    SELECT * FROM query1
    UNION
    SELECT * FROM query2

    ed ottieni due righe con i dati del 2015 e 2016.
    Un pò più preciso per questo disinformato?
    Dove scrivo quanto mi dici Nei criteri di ricerca della query e nella maschera in ORIGINE DATI?

    Scusami
  • Re: Query

    Chi la dura la vince
    Grazie a tutti e due....ho risolto.
Devi accedere o registrarti per scrivere nel forum
9 risposte