Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2021
    Messaggi
    2

    selezionare i record con data maggiore per ogni codice e il suo prezzo per quella data

    Buongiorno,
    mi sono appena iscritta al gruppo e ho un problema simile a quello risolto nella discussione "[MySql] selezionare i record con data maggiore per ogni gruppo ID", solamente che ho 3 campi anzichè due da estrapolare con la data maggiore:

    codart, data e valoreunitario,

    facendo la query come indicato sopra tutto bene, se inserisco il valore unitario mi scombina tutta la tabella e mi estrae tutti i campi e non solo quello con la data maggiore, potete aiutarmi? Grazie mille

    SELECT DISTINCT T1.CodArt, T1.DataPresConsegnaRichiesta, T1.Valoreunitario
    FROM dbo.PASDocRighe INNER JOIN
    (SELECT MAX(DataPresConsegnaRichiesta) AS date, CodArt AS codart, valoreunitario as value
    FROM T1
    GROUP BY CodArt, valoreunitario) AS T2 ON T1.DataPresConsegnaRichiesta = T2.date AND T1.CodArt = T2.codart AND T1.valoreunitario as value
    ORDER BY dbo.PASDocRighe.CodArt


    Quote Originariamente inviata da optime Visualizza il messaggio
    qualcosa del tipo

    codice:
    SELECT DISTINCT * FROM TabellaT1 JOIN
    (
    SELECT 
        MAX(Data) AS myDate, IDObj AS myId
    FROM
        Tabella
    GROUP BY
        IDObj ) T2 ON T1.Data=T2.myDate AND T1.IDObj =T2.myObj

  2. #2
    Amministratore L'avatar di Vincent.Zeno
    Registrato dal
    May 2003
    residenza
    Emilia-Romagna (tortellini und cappelletti land!)
    Messaggi
    20,783
    ho messo un po' d'ordine al post

  3. #3
    inizia col preparare bene la query interna

    questa
    codice:
    SELECT 
       MAX(DataPresConsegnaRichiesta) AS date, 
       CodArt AS codart, 
       valoreunitario as value
    FROM 
      T1
    GROUP BY 
      CodArt, 
      valoreunitario
    
    funziona bene? Sicura della tabella T1? date e value credo siano parole riservate

  4. #4
    e comunque la query di esempio estrare TUTTI i campi della tabella, mica solo due

    codice:
    SELECT DISTINCT * 
    FROM Tabella T1 JOIN
    (
       SELECT MAX(Data) AS myDate, IDObj AS myId
       FROM Tabella
       GROUP BY IDObj) T2 
    ON T1.Data=T2.myDate AND T1.IDObj =T2.myObj

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.