Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 15
  1. #1

    Ultimo record

    Ciao...
    Spero sia il posto giusto per risolvere un problema con una query di access...

    Ho 2 tabelle

    Tabella Lavoro
    IDLavoro
    Lavoro
    ....
    ....
    ....

    Tabella Avanzamento
    IDavanzamento
    IDLavoro
    Note
    Consegna


    ogni Lavoro ovviamente ha più avanzamenti.

    Vorrei selezionare tutti i lavori ma solo l'ultimo avanzamento di ogni lavoro... come posso fare??

    Grazie
    Max
    MEMENTO AUDERE SEMPER
    Maxxl

    www.maxxl.it

  2. #2
    Ritengo che il campo Consegna sia una data.

    Quindi la query da eseguire è questa:
    codice:
    SELECT tbLavori.IDLavoro, tbLavori.Lavoro, tbAvanzamento.Note, 
           Max(tbAvanzamento.Consegna) AS MaxDiConsegna
    FROM tbAvanzamento RIGHT JOIN tbLavori ON  
         tbAvanzamento.IDLavoro = tbLavori.IDLavoro
    GROUP BY tbLavori.IDLavoro, tbLavori.Lavoro, tbAvanzamento.Note;


    05.08.2005 - by alka
    Auguri all'angelo custode dei moderatori.

  3. #3
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,463

    Moderazione

    Originariamente inviato da maxxl
    Spero sia il posto giusto per risolvere un problema con una query di access...
    Il posto è giusto, ma nel titolo andrebbe indicato il linguaggio o il database di riferimento.

    Leggi il nostro Regolamento per conoscere questa ed altre norme e suggerimenti utili.

    Correggo io il titolo di questa discussione.

    Ciao!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  4. #4
    Scusate per il titolo


    Ho provato così

    codice:
    SELECT [Info Commessa_rep].*, [Tabella Avanzamenti].Brief,Max( [Tabella Avanzamenti].Consegna) AS Max 
    FROM [Tabella Avanzamenti] INNER JOIN [Info Commessa_rep] ON [Tabella Avanzamenti].IDCommessa =
     [Info Commessa_rep].IDCommessa;
    ma mi da questo errore

    "impossibile eseguire una query che non include l'espressione "IDCommessa" specificata come parte di una funzione di aggregazione"

    ??????
    MEMENTO AUDERE SEMPER
    Maxxl

    www.maxxl.it

  5. #5
    aggiungi la GROUP BY alla fine dell'istruzione

    05.08.2005 - by alka
    Auguri all'angelo custode dei moderatori.

  6. #6
    In che maniera???

    SELECT [Info Commessa_rep].*, [Tabella Avanzamenti].Brief,Max( [Tabella Avanzamenti].Consegna) AS Max
    FROM [Tabella Avanzamenti] INNER JOIN [Info Commessa_rep] ON [Tabella Avanzamenti].IDCommessa = [Info Commessa_rep].IDCommessa
    GROUP BY [Tabella Avanzamenti].Consegna;

    cosi??
    ma mi da errore
    MEMENTO AUDERE SEMPER
    Maxxl

    www.maxxl.it

  7. #7
    ho tolto l'asterisco ma mi da tutti gli avanzamenti e non solo l'ultimo!!!!!

    codice:
    SELECT [Info Commessa_rep].IDCommessa, [Info Commessa_rep].[Data Apertura], [Info Commessa_rep].[Rif Preventivo], [Info Commessa_rep].IDCliente, [Info Commessa_rep].Lavoro, [Info Commessa_rep].[Tabella Commessa].IDGrafico, [Info Commessa_rep].IDAccount, [Info Commessa_rep].[Totale Ore], [Info Commessa_rep].Note, [Info Commessa_rep].[Data Chiusura], [Info Commessa_rep].Account, [Info Commessa_rep].Società, [Info Commessa_rep].[Tabella Grafici].IDGrafico, [Info Commessa_rep].Grafico, [Info Commessa_rep].Indirizzo, [Info Commessa_rep].Località, [Info Commessa_rep].CAP, [Info Commessa_rep].[Stato/Provincia], [Info Commessa_rep].Contatto1, [Info Commessa_rep].Banca, [Info Commessa_rep].ContoCorrente, [Info Commessa_rep].ABI, [Info Commessa_rep].CAB, [Info Commessa_rep].P_Iva, [Info Commessa_rep].Pagamento, [Info Commessa_rep].NumeroTel, [Info Commessa_rep].NumeroFax, [Tabella Avanzamenti].Brief, Max([Tabella Avanzamenti].Consegna) AS [Max]
    FROM [Tabella Avanzamenti] INNER JOIN [Info Commessa_rep] ON [Tabella Avanzamenti].IDCommessa = [Info Commessa_rep].IDCommessa
    GROUP BY [Info Commessa_rep].IDCommessa, [Info Commessa_rep].[Data Apertura], [Info Commessa_rep].[Rif Preventivo], [Info Commessa_rep].IDCliente, [Info Commessa_rep].Lavoro, [Info Commessa_rep].[Tabella Commessa].IDGrafico, [Info Commessa_rep].IDAccount, [Info Commessa_rep].[Totale Ore], [Info Commessa_rep].Note, [Info Commessa_rep].[Data Chiusura], [Info Commessa_rep].Account, [Info Commessa_rep].Società, [Info Commessa_rep].[Tabella Grafici].IDGrafico, [Info Commessa_rep].Grafico, [Info Commessa_rep].Indirizzo, [Info Commessa_rep].Località, [Info Commessa_rep].CAP, [Info Commessa_rep].[Stato/Provincia], [Info Commessa_rep].Contatto1, [Info Commessa_rep].Banca, [Info Commessa_rep].ContoCorrente, [Info Commessa_rep].ABI, [Info Commessa_rep].CAB, [Info Commessa_rep].P_Iva, [Info Commessa_rep].Pagamento, [Info Commessa_rep].NumeroTel, [Info Commessa_rep].NumeroFax, [Tabella Avanzamenti].Brief;
    HELP
    MEMENTO AUDERE SEMPER
    Maxxl

    www.maxxl.it

  8. #8
    max per prima cosa non è possibile eseguire una group by su campi della select chiamati con NomeTabella.*, quindi dovrai modificare la query inserendo tutti i campi della tabella Info Commessa_rep

    Aggiusta questa query secondo quanto serve a te, ho cercato di modificare i campi in base alle poche informazioni che hai dato sulla struttura delle tue tabelle, quindi dovrai fare da solo; comunque l'istruzione scritta così funziona, devi solo risistemare i campi:
    codice:
    SELECT [Tabella Avanzamenti].Brief, 
           Max([Tabella Avanzamenti].Consegna) AS MaxDiConsegna, 
           [Info Commessa_rep].IDCommessa, [Info Commessa_rep].Commessa
    FROM [Tabella Avanzamenti] RIGHT JOIN [Info Commessa_rep] ON 
         [Tabella Avanzamenti].IDCommessa = [Info Commessa_rep].IDCommessa
    GROUP BY [Tabella Avanzamenti].Brief, 
             [Tabella Avanzamenti].Consegna, 
             [Info Commessa_rep].IDCommessa, 
             [Info Commessa_rep].Commessa

    05.08.2005 - by alka
    Auguri all'angelo custode dei moderatori.

  9. #9
    max puoi farmi un esempio di record contenuti nelle tabelle?

    Cioè, vorrei sapre una riga della tabella Info... e una o più corrispondenti in TabellaAvanzamenti.
    Così vedo di darti una mano.

    05.08.2005 - by alka
    Auguri all'angelo custode dei moderatori.

  10. #10
    codice:
    SELECT [Tabella Avanzamenti].Brief, Max([Tabella Avanzamenti].Consegna) AS MaxDiConsegna, [Info Commessa_rep].IDCommessa, [Info Commessa_rep].Lavoro
    FROM [Tabella Avanzamenti] INNER JOIN [Info Commessa_rep] ON [Tabella Avanzamenti].IDCommessa = [Info Commessa_rep].IDCommessa
    GROUP BY [Tabella Avanzamenti].Brief, [Info Commessa_rep].IDCommessa, [Tabella Avanzamenti].Consegna, [Info Commessa_rep].Lavoro;

    niente da fare me li da tutti e non uno...

    P.S. alcuni campi consegna sono vuoti... che sia quello????
    MEMENTO AUDERE SEMPER
    Maxxl

    www.maxxl.it

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.