Tipi di dati non corrispondenti nell'espressione criterio: Somma

di il
15 risposte

Tipi di dati non corrispondenti nell'espressione criterio: Somma

Salve,

Ho la seguente query di unione

SELECT[Cognome] & " " & [Nome] AS Dipendente, Lavori.[Denominazione breve] AS Lavoro, Ore.Data1 AS Data, Ore.Ore, "" AS Giorni, Ore.Note
FROM Lavori INNER JOIN (Ore INNER JOIN Dipendenti ON Ore.IDDipendente=Dipendenti.[IDDipendente]) ON Lavori.IDLavoro=Ore.IDLavoro

UNION SELECT [Cognome] & " " & [Nome] AS Dipendente, TipiNonLavori.Descrizione, NonLavoro.Data2 AS Data, "" AS Ore, NonLavoro.Giorni, NonLavoro.Note 
FROM TipiNonLavori INNER JOIN (NonLavoro INNER JOIN Dipendenti ON NonLavoro.IDDipendente=Dipendenti.[IDDipendente]) ON TipiNonLavori.IDTipoNonLavoro=NonLavoro.IDTipoNonLavoro;

la quale tiene conto delle ore di lavoro e di non lavoro (malattia, ferie ect) per ogni dipendente. 

Sulla base di questa query costruisco un repor dove raggruppo i dipendenti. Quando vado a fare, al piè di pagina dipendenti, la somma delle ore  con =Somma(Ore) mi dice “Tipi di dati non corrispondenti nell'espressione criterio”. Il dato ore è numerico. Dove sta il problema?

15 Risposte

  • Re: Tipi di dati non corrispondenti nell'espressione criterio: Somma

    FROM Lavori 

    INNER JOIN (Ore

     INNER JOIN Dipendenti 

    ON Ore.IDDipendente=Dipendenti.[IDDipendente])

     ON Lavori.IDLavoro=Ore.IDLavoro

    Cosa dovrebbe fare?

  • Re: Tipi di dati non corrispondenti nell'espressione criterio: Somma

    Mi da le oreo per quel dipendente. La tabella dipendenti e ore hanno una relazione uno a molti

  • Re: Tipi di dati non corrispondenti nell'espressione criterio: Somma

    Ma per vedere i campi delle tabelle?

    Come mai usi , "" AS Giorni e "" AS Ore nella select?

    A quale ore fa riferimento la somma a ore.ore o ‘’' as ore?

     “” Non mi sembra numerico.

  • Re: Tipi di dati non corrispondenti nell'espressione criterio: Somma

    Allora ti spiego. C'è una tabella dipendenti, una tabella lavori(In cui c'è i campo denominazione breve) e una tabella NonLavori e una tabella ore. Nella tabella ore segno le ore ad ogni dipendente, nella tabella non lavoro segno i giorni di permesso o ferie ad ogni dipendente. Allora poi volevo vedere in un unica schermata i dipendenti, le ore di lavoro e quelle di non lavoro e ho fatto questa query. 

    Tu dici che se imposto così la query le ore non sono numeriche? Ma nella tabella ore, il campo ore l ho messo numerico…

    La tabella ORE è così composta

    IDOre, Dipendente, Lavoro, Data1, Ore, Descrizione, Note

    La tabella NonLavoro è fatto così:

    IDNonLavoro, Dipendente, Descrizione(e qui c'è malattia ferie o permesso), Data2, Giorni, Note.

  • Re: Tipi di dati non corrispondenti nell'espressione criterio: Somma

    Ahh ho capito cosa intendi dire. Ma allora nel report come faccio a sommanre le ore? Metto =Somma(Ore.Ore)?

  • Re: Tipi di dati non corrispondenti nell'espressione criterio: Somma

    20/05/2023 - sihsandrea ha scritto:


    Ma per vedere i campi delle tabelle?

    Come mai usi , "" AS Giorni e "" AS Ore nella select?

    A quale ore fa riferimento la somma a ore.ore o ‘’' as ore?

     “” Non mi sembra numerico.

    Perché lo so fare con AS per il momento. Come posso fare affinché Ore e Giorni siano numerici?

  • Re: Tipi di dati non corrispondenti nell'espressione criterio: Somma

    20/05/2023 - Nat ha scritto:


    Perché lo so fare con AS per il momento. Come posso fare affinché Ore e Giorni siano numerici?

    Ciao, in merito alla domanda, la risposta è contenuta nella domanda stessa. C'è poco da aggiungere.

    Invece ci sarebbe da dire molto su altre cosucce. Anche in questo caso, quindi non sei il solo, si vedono queste query con tutti questi “As”

    queste tabelle con i nomi dei campi con gli "Spazi" e l'uso del “.” 

    Non so…. si fa in questo modo per complicarsi la vita e complicarla alle stringhe Sql e al Vba ? 

    Non capisco perchè vi ostinate nell'usare delle sintassi astruse che spesso e volentieri vanno solo in conflitto con il codice e le modalità di scrittura dello stesso. Tutto ciò alla fine porta a fare i salti mortali per far stare in piedi una banale Select o due semplici righe di codice 

    Ma poi tutti questi "As" … a che servono? per appesantire l'elaborazione del codice? 
    Se si arriva ogni qualvolta a Rinominare un campo della Tabella, allora vuol dire che i campi delle tabelle sono denominati malamente, o no?
    Non sarà opportuno demandare all'interfaccia, che sia un oggetto Form o Report, a doversi far carico di descrivere il campo esposto? 

    Oppure ti sembra logico e normale che se leggo lo stesso campo, in Tabella ha un Nome e nella Query ne ha un altro?

    Tutte cose che fanno perdere tempo all'elaborazione, alla programmazione, alla successiva manutenzione del codice e chi più ne ha ne metta.

    Non è forse il caso di rimettere mano a tutto e rifare come si deve secondo degli standard esistenti e, se esistono vuol dire che hanno un senso?

    Il consiglio che posso darti, anche se non richiesto, è quello di approfondire certi argomenti, fare ordine e fare le cose in modo normale.
    In pratica ti conviene tirar via tutto e resettare.

    Non c'è una logica o giustificazione nel fare le cose in questo modo.
    Così è come dare un ramoscello ad uno zoppo… prima poi se ne casca, fa un botto e stà peggio di prima ;)

  • Re: Tipi di dati non corrispondenti nell'espressione criterio: Somma

    “” as pippo ti aggiunge un campo tipo stringa null di nome pippo

    “Ciao” as pippo ti aggiunge un campo pippo con valore “ciao”.

    Anche a crearlo di tipo intero sarebbe sempre zero o null.

    Così senza vedere tabelle e campi non riesco ad aiutarti. 

    Aggiungere direttamente in tabella un campo numerico ed usare quello non sarebbe più comodo? Tanto sarebbe sempre a valore zero. Dai di default il valore 0 e vedi se va. In fondo lo hai creato per fare l'unione di tabelle.

  • Re: Tipi di dati non corrispondenti nell'espressione criterio: Somma

    20/05/2023 - sihsandrea ha scritto:


    “” as pippo ti aggiunge un campo tipo stringa null di nome pippo

    “Ciao” as pippo ti aggiunge un campo pippo con valore “ciao”.

    Anche a crearlo di tipo intero sarebbe sempre zero o null.

    Così senza vedere tabelle e campi non riesco ad aiutarti. 

    Aggiungere direttamente in tabella un campo numerico ed usare quello non sarebbe più comodo? Tanto sarebbe sempre a valore zero. Dai di default il valore 0 e vedi se va. In fondo lo hai creato per fare l'unione di tabelle.

    Ciao… ma poi è un campo Formato Ora oppure Numerico? 
    Perchè se è Numerico basta valorizzarlo = 0 

    O mi sfugge qualcosa?

    ;))

  • Re: Tipi di dati non corrispondenti nell'espressione criterio: Somma

    20/05/2023 - By65Franco ha scritto:


    20/05/2023 - Nat ha scritto:


    Perché lo so fare con AS per il momento. Come posso fare affinché Ore e Giorni siano numerici?

    Ciao, in merito alla domanda, la risposta è contenuta nella domanda stessa. C'è poco da aggiungere.

    Invece ci sarebbe da dire molto su altre cosucce. Anche in questo caso, quindi non sei il solo, si vedono queste query con tutti questi “As”

    queste tabelle con i nomi dei campi con gli "Spazi" e l'uso del “.” 

    Non so…. si fa in questo modo per complicarsi la vita e complicarla alle stringhe Sql e al Vba ? 

    Non capisco perchè vi ostinate nell'usare delle sintassi astruse che spesso e volentieri vanno solo in conflitto con il codice e le modalità di scrittura dello stesso. Tutto ciò alla fine porta a fare i salti mortali per far stare in piedi una banale Select o due semplici righe di codice 

    Ma poi tutti questi "As" … a che servono? per appesantire l'elaborazione del codice? 
    Se si arriva ogni qualvolta a Rinominare un campo della Tabella, allora vuol dire che i campi delle tabelle sono denominati malamente, o no?
    Non sarà opportuno demandare all'interfaccia, che sia un oggetto Form o Report, a doversi far carico di descrivere il campo esposto? 

    Oppure ti sembra logico e normale che se leggo lo stesso campo, in Tabella ha un Nome e nella Query ne ha un altro?

    Tutte cose che fanno perdere tempo all'elaborazione, alla programmazione, alla successiva manutenzione del codice e chi più ne ha ne metta.

    Non è forse il caso di rimettere mano a tutto e rifare come si deve secondo degli standard esistenti e, se esistono vuol dire che hanno un senso?

    Il consiglio che posso darti, anche se non richiesto, è quello di approfondire certi argomenti, fare ordine e fare le cose in modo normale.
    In pratica ti conviene tirar via tutto e resettare.

    Non c'è una logica o giustificazione nel fare le cose in questo modo.
    Così è come dare un ramoscello ad uno zoppo… prima poi se ne casca, fa un botto e stà peggio di prima ;)

    Grazie per la ramanzina! 

  • Re: Tipi di dati non corrispondenti nell'espressione criterio: Somma

    20/05/2023 - By65Franco ha scritto:


    20/05/2023 - sihsandrea ha scritto:


    “” as pippo ti aggiunge un campo tipo stringa null di nome pippo

    “Ciao” as pippo ti aggiunge un campo pippo con valore “ciao”.

    Anche a crearlo di tipo intero sarebbe sempre zero o null.

    Così senza vedere tabelle e campi non riesco ad aiutarti. 

    Aggiungere direttamente in tabella un campo numerico ed usare quello non sarebbe più comodo? Tanto sarebbe sempre a valore zero. Dai di default il valore 0 e vedi se va. In fondo lo hai creato per fare l'unione di tabelle.

    Ciao… ma poi è un campo Formato Ora oppure Numerico? 
    Perchè se è Numerico basta valorizzarlo = 0 

    O mi sfugge qualcosa?

    ;))

    Perfetto!

  • Re: Tipi di dati non corrispondenti nell'espressione criterio: Somma

    20/05/2023 - Nat ha scritto:


    Grazie per la ramanzina! 

    ma nooooooooo ;) …. solo un piccolo consiglio, ripeto…anche se non richiesto, prima che sia troppo tardi e che ti porti a percorre una strada senza gli strumenti necessari.  

    In merito al quesito… la risposta è nella domanda che hai fatto. Però un ripasso ai "tipi di variabili" bisogna farlo.  Dai dai dai … ;)) 

  • Re: Tipi di dati non corrispondenti nell'espressione criterio: Somma

    20/05/2023 - Nat ha scritto:


    Perfetto!

    Non è affatto perfetto… stà a tua discrezione valorizzare una variabile a 0 in un campo Variant secondo l'uso che poi ne fari e in questo caso in una somma numerica questa variabile sarebbe corretto convertirla in valore 

    Se 

    Stringa = “0” più Long = 2 più Double = 4 … sarebbe opportuno usare un pò di logica e la nuova operazione assumerà questo aspetto:

    Val(Stringa) + 2 + 4  …. che risulterà:

    0 + 2 + 4   =   6

    Esistono:
    Val()
    CInt()
    CDbl()

    Ma detto ciò… anzi…. oppure…. vabbè…. il consiglio te lo dato , adesso tocca a te.  ;))

  • Re: Tipi di dati non corrispondenti nell'espressione criterio: Somma

    20/05/2023 - By65Franco ha scritto:


    20/05/2023 - Nat ha scritto:


    Perfetto!

    Non è affatto perfetto… stà a tua discrezione valorizzare una variabile a 0 in un campo Variant e secondo l'uso che poi ne fari e in questo caso in una somma numerica questa variabile sarebbe corretto convertirla in valore 

    Se 

    Stringa = “0” più Long = 2 più Double = 4 … sarebbe opportuno usare un pò di logica e la nuova operazione assumerà questo aspetto:

    Val(Stringa) + 2 + 4  …. che risulterà:

    0 + 2 + 4   =   6

    Esistono:
    Val()
    CInt()
    CDbl()

    Ma detto ciò… anzi…. oppure…. vabbè…. il consiglio te lo dato , adesso tocca a te.  ;))

    Grazie tante, seguirò!

Devi accedere o registrarti per scrivere nel forum
15 risposte