Problema creazione query

di il
15 risposte

Problema creazione query

Buongiorno,

sono Michael, piacere di conoscervi. Ho un problema sulla creazione di una query.

Ho due tabelle:

  1. Tabella1 con i campi: week(espresso in settimane)/articolo/qta consumata
  2. Tabella2 con i campi: week(espresso in settimane)

La tabella1 contiene i consumi settimanali dei miei articoli

La tabella2 contiene tutte le settimane che ci sono in un anno.

Vorrei creare una query che leghi queste due tabelle in modo da avere tutte le settimane dell'anno moltiplicate per tutti gli articoli. Dove c'è stato consumo inserisce la qta, dove non c'è stato consumo mette zero.

In poche parole avrei bisogno di una query con 3 campi:

  • week: tutte le settimane dell'anno duplicate per ogni articolo.
  • Articolo
  • Qta consumata: se c'è stato consumo nella settimana “X” inserisce la qta altrimenti mette 0.

Avevo pensato di utilizzare una LEFT JOIN ma non funziona.

Potete aiutarmi?

Grazie mille.

15 Risposte

  • Re: Problema creazione query

    In un anno ci sono 52 settimane.

    Come hai pensato la tabella settimane?

    Considera che la settimana può cominciare dal'1 al 6 gennaio (ragionando per sommi capi).

  • Re: Problema creazione query

    01/12/2023 - Mike1997 ha scritto:


    Tabella1 con i campi: week(espresso in settimane)/articolo/qta consumata

    Week è una parola riservata, sarai condannato a racchiudere quel nome tra parentesi quadrate per sempre. Visto poi che per gli altri campi usi nomi in italiano (sconsiglio anche “qta consumata”, con lo spazio) perché non lo chiami Settimane, NrSettimane (meglio questo del primo), o qualcosa di tranquillo? 

  • Re: Problema creazione query

    01/12/2023 - sihsandrea ha scritto:


    In un anno ci sono 52 settimane.

    Come hai pensato la tabella settimane?

    Considera che la settimana può cominciare dal'1 al 6 gennaio (ragionando per sommi capi).

    è una tabella che mi arriva dal sistema ERP

  • Re: Problema creazione query

    01/12/2023 - Philcattivocarattere ha scritto:


    01/12/2023 - Mike1997 ha scritto:


    Tabella1 con i campi: week(espresso in settimane)/articolo/qta consumata

    Week è una parola riservata, sarai condannato a racchiudere quel nome tra parentesi quadrate per sempre. Visto poi che per gli altri campi usi nomi in italiano (sconsiglio anche “qta consumata”, con lo spazio) perché non lo chiami Settimane, NrSettimane (meglio questo del primo), o qualcosa di tranquillo? 

    Ok, grazie mille per il consiglio. Hai qualche consiglio per la creazione della query?

  • Re: Problema creazione query

    01/12/2023 - Mike1997 ha scritto:

    Hai qualche consiglio per la creazione della query?

    No, mi dispiace. Sto lontanissimo da quella situazione perché non la so fare e non è tra le mie priorità impararla (sono un Accessista a tempo perso).

  • Re: Problema creazione query

    01/12/2023 - Philcattivocarattere ha scritto:


    01/12/2023 - Mike1997 ha scritto:

    Hai qualche consiglio per la creazione della query?

    No, mi dispiace. Sto lontanissimo da quella situazione perché non la so fare e non è tra le mie priorità impararla (sono un Accessista a tempo perso).

    Che cattivo carattere…. :-))

    01/12/2023 - Mike1997 ha scritto:


    Vorrei creare una query che leghi queste due tabelle in modo da avere tutte le settimane dell'anno moltiplicate per tutti gli articoli. Dove c'è stato consumo inserisce la qta, dove non c'è stato consumo mette zero.

    Legare due tabelle, perché?

    Quello che vuoi ottenere, scritto da te, è:

    01/12/2023 - Mike1997 ha scritto:


    In poche parole avrei bisogno di una query con 3 campi:

    • week: tutte le settimane dell'anno duplicate per ogni articolo.
    • Articolo
    • Qta consumata: se c'è stato consumo nella settimana “X” inserisce la qta altrimenti mette 0.

    La tabella1 ha già quei campi…

    01/12/2023 - Mike1997 ha scritto:


    Ho due tabelle:

    1. Tabella1 con i campi: week(espresso in settimane)/articolo/qta consumata
    2. Tabella2 con i campi: week(espresso in settimane)

    La tabella2, come ti ho scritto in precedenza, a cosa dovrebbe servire?

    Ma, soprattutto, da dove prendi il consumato?

    Tabella1 (che ancora non ho identificato la funzione e il contenuto per darle un nome decente), dovrebbe avere un id, una data, un codice articolo ed una quantità consumata (per quel giorno)

    In fase di preparazione query ti ricavi i parametri necessari

    Nr settimana anno x 

    Articoli da considerare

    Nella query:

    Group by articolo

    Order by settimana

    Butta giù qualcosa che limiamo ove necessario.

  • Re: Problema creazione query

    01/12/2023 - sihsandrea ha scritto:


    01/12/2023 - Philcattivocarattere ha scritto:


    01/12/2023 - Mike1997 ha scritto:

    Hai qualche consiglio per la creazione della query?

    No, mi dispiace. Sto lontanissimo da quella situazione perché non la so fare e non è tra le mie priorità impararla (sono un Accessista a tempo perso).

    Che cattivo carattere…. :-))

    01/12/2023 - Mike1997 ha scritto:


    Vorrei creare una query che leghi queste due tabelle in modo da avere tutte le settimane dell'anno moltiplicate per tutti gli articoli. Dove c'è stato consumo inserisce la qta, dove non c'è stato consumo mette zero.

    Legare due tabelle, perché?

    Quello che vuoi ottenere, scritto da te, è:

    01/12/2023 - Mike1997 ha scritto:


    In poche parole avrei bisogno di una query con 3 campi:

    • week: tutte le settimane dell'anno duplicate per ogni articolo.
    • Articolo
    • Qta consumata: se c'è stato consumo nella settimana “X” inserisce la qta altrimenti mette 0.

    La tabella1 ha già quei campi…

    01/12/2023 - Mike1997 ha scritto:


    Ho due tabelle:

    1. Tabella1 con i campi: week(espresso in settimane)/articolo/qta consumata
    2. Tabella2 con i campi: week(espresso in settimane)

    La tabella2, come ti ho scritto in precedenza, a cosa dovrebbe servire?

    Ma, soprattutto, da dove prendi il consumato?

    Tabella1 (che ancora non ho identificato la funzione e il contenuto per darle un nome decente), dovrebbe avere un id, una data, un codice articolo ed una quantità consumata (per quel giorno)

    In fase di preparazione query ti ricavi i parametri necessari

    Nr settimana anno x 

    Articoli da considerare

    Nella query:

    Group by articolo

    Order by settimana

    Butta giù qualcosa che limiamo ove necessario.

    Tabella1 -? campi: Nrsettimane/articolo/qtaconsumata

    Tabella2 -? campi: Nrsettimane(1,2,3..ecc)

    la tabella 1 contiene i consumi di ogni articolo per settimana, ma se un determinato codice non ha consumo nella settimana 2 (esempio) non trovo il record con qta 0 ed io è proprio di questo che ho bisogno

  • Re: Problema creazione query

    A parte che se nel portafoglio non trovo la banconota da 500 euro il cervelletto mi avvisa che la quantità delle banconote da 500 euro è zero.

    Sempre il cervelletto mi informa che se cerco una banconota da 570 euro non c'è perché non esiste.

    Io come faccio a sapere che aricoli movimenti?

    In effetti, se hai 10.000 articoli è più sensato sapere cosa si utilizza non cosa non si utilizza.

    Ti potresti ritrovare con 50 settimane con panettone=0 una lunga lista inutile.

    Piuttosto, trovata la query puoi interrogare per determinati articoli. Così all'articolo panettone hai 52 record. 50 a zero e due a 100.

    Poi fai tu.

    Tra le risposte hai tutto quello che serve per abbozzare una query.

  • Re: Problema creazione query

    01/12/2023 - sihsandrea ha scritto:


    A parte che se nel portafoglio non trovo la banconota da 500 euro il cervelletto mi avvisa che la quantità delle banconote da 500 euro è zero.

    Sempre il cervelletto mi informa che se cerco una banconota da 570 euro non c'è perché non esiste.

    Io come faccio a sapere che aricoli movimenti?

    In effetti, se hai 10.000 articoli è più sensato sapere cosa si utilizza non cosa non si utilizza.

    Ti potresti ritrovare con 50 settimane con panettone=0 una lunga lista inutile.

    Piuttosto, trovata la query puoi interrogare per determinati articoli. Così all'articolo panettone hai 52 record. 50 a zero e due a 100.

    Poi fai tu.

    Tra le risposte hai tutto quello che serve per abbozzare una query.

    Ho bisogno si sapere cosa non si consuma in una determinata settima(riga con qta zero) perchè mi serve per calcolare la deviazione standard sui consumi.

    Poi come dici tu andrò a filtrare i record tramite una variabile articolo.

    Io avevo provato ad utillizzare una lelft join, ma non mi restituisce i record con qta zero.

    Hai qualche idea di come fare?

    Grazie mille in anticipo.

  • Re: Problema creazione query

    04/12/2023 - Mike1997 ha scritto:


    Io avevo provato ad utillizzare una lelft join, ma non mi restituisce i record con qta zero.

    Hai qualche idea di come fare?

    Se fai select tabella1 allora right join articoli (include tutti gli articoli)

    Se fai select articoli allora left join tabella1 (tutti gli articoli + articoli della tabella1)

    https://javarevisited.blogspot.com/2012/11/how-to-join-three-tables-in-sql-query-mysql-sqlserver.html

  • Re: Problema creazione query

    04/12/2023 - sihsandrea ha scritto:


    04/12/2023 - Mike1997 ha scritto:


    Io avevo provato ad utillizzare una lelft join, ma non mi restituisce i record con qta zero.

    Hai qualche idea di come fare?

    Se fai select tabella1 allora right join articoli (include tutti gli articoli)

    Se fai select articoli allora left join tabella1 (tutti gli articoli + articoli della tabella1)

    https://javarevisited.blogspot.com/2012/11/how-to-join-three-tables-in-sql-query-mysql-sqlserver.html

    Ma come faccio a fare in modo con lui crei un record con nrsettimana, articolo, qta a 0?

  • Re: Problema creazione query

    04/12/2023 - Mike1997 ha scritto:


    Ma come faccio a fare in modo con lui crei un record con nrsettimana, articolo, qta a 0?

    Come fai ad avere la lista dei movimentati?

    La quantità la prendi da sum(quantità) e il right join ti inserisce tutti gli articoli. Ovviamente non avrai sum(quantità) per i non movimentati.

    Almeno questo mi dice la sfera di cristallo.

  • Re: Problema creazione query

    04/12/2023 - Mike1997 ha scritto:


    Ma come faccio a fare in modo con lui crei un record con nrsettimana, articolo, qta a 0?

    Come fai ad avere la lista dei movimentati?

    La quantità la prendi da sum(quantità) e il right join ti inserisce tutti gli articoli. Ovviamente non avrai sum(quantità) per i non movimentati.

    Almeno questo mi dice la sfera di cristallo.

  • Re: Problema creazione query

    Grazie mille a tutti. 

    Ho risolto il mio problema. 

    Sbagliavo la sintassi della funzione left join.

Devi accedere o registrarti per scrivere nel forum
15 risposte