Solo una riga per ogni occorrenza di un campo specifico

di il
5 risposte

Solo una riga per ogni occorrenza di un campo specifico

Buongiorno a tutti.

Sono completamente a secco con MSAccess (ma non di mysql).

Ho una query (select) che lavora tra due tabelle, niente di eccezionale (qua di seguito la scrivo…).

Devo modificare la query affichè il resultset contenga SOLO una riga per ogni occorrenza del campo “WAIP”, NON E' ASSOLUTAMENTE IMPORTANTE CON QUALE CRITERIO VENGA SCELTA LA RIGA.

Questa è la query che ho iniziato a scrivere:

SELECT mylog.ID AS ID, mylog.WAIP, mylog.datautc as DataUTC, mylog.CALLSIGN AS Nominativo, mylog.BANDA AS Banda, mylog.MODO AS Modo, mylog.QSLr AS QSLr, eqsl.EQSLr AS EQSLr, eqsl.LOTWQSLr AS LOTWQSLr From mylog, eqsl where (mylog.ID = eqsl.IDc) AND
(mylog.MODO) = 'SSB' AND
(Banda='160m' or Banda='80m' or Banda='60m' or Banda='40m' or Banda='30m' or Banda='20m' or Banda='17m' or Banda='15m' or Banda='12m' 
or Banda='10m')  AND
(mylog.mycall='IU5HES') AND
(mylog.logname='mylog') AND
(mylog.waip) Like '*[[]*' AND
((mylog.QSLr)='Y' Or (mylog.QSLr)='D' or (eqsl.LOTWQSLr)='Y' or
(eqsl.EQSLr)='Y')
order by waip

Viene restituita una cosa simile a questa:

In sostanza dovrò avere nel risultato una cosa del tipo (come noterete non mi interessa la riga che viene fuori):

2281-[AG Agrigento]-…….

2553-[AL Alessandria]……

…..

….

Qualcuno ha idea di come modificare la query? Di robe come inner join etc… sono completamente a digiuno. Stavo pensando di fare una group by sul campo waip ma picche con un errore per me incomprensibile (su mysql la query, con qualche piccolo riadattamento di sintassi funziona).

Saluti e ringraziamenti a chi potrà dedicarmiqualche minuto.

Michele

5 Risposte

  • Re: Solo una riga per ogni occorrenza di un campo specifico

    @iu5hes, con L'SQLnon si puo' fare SE ti serve sia waip che id. 

    Il problema (ma problema non è) e' come funziona un ‘modello relazionale dei dati’ e NON DIPENDE dal DBMS usato, MA con la NORMALIZZAZIONE dei dati.

    Lo puoi fare selezionando SOLO la colonna waip con una SELECT DISTINCT.

    In alternativa puoi scrivere una STORED PROCEDURE, cioe' del CODICE. 

  • Re: Solo una riga per ogni occorrenza di un campo specifico

    18/01/2024 - migliorabile ha scritto:


    @iu5hes, con L'SQLnon si puo' fare SE ti serve sia waip che id. 

    Il problema (ma problema non è) e' come funziona un ‘modello relazionale dei dati’ e NON DIPENDE dal DBMS usato, MA con la NORMALIZZAZIONE dei dati.

    Lo puoi fare selezionando SOLO la colonna waip con una SELECT DISTINCT.

    In alternativa puoi scrivere una STORED PROCEDURE, cioe' del CODICE. 

    Ok ti ringrazio.

    Alla fine, visto che la query è fatta via software, sono andato a scremare in seguito il resultset.

    Grazie della dritta e della spiegazione.

    Michele

  • Re: Solo una riga per ogni occorrenza di un campo specifico

    Cioè ti serve solo sapere quante città ci sono?

    select waip from tabella group by waip order by waip

    ti da l'elenco delle città

    alessandria

    agrigento

    ancona

    ecc…

    Per gli altri campi non puoi aggiungere MAX(ID), altricampichetiservono, ecc… alla select ti da il record con id più grande

    errata corrige: 

    Per gli altri campi puoi aggiungere a MAX(ID), altricampichetiservono, ecc… nella sezione select così ti da il record intero ma con id più grande

  • Re: Solo una riga per ogni occorrenza di un campo specifico

    Io non sono certo di capire, anche perché mi pare non ci sia un vero criterio..

    Se si dovesse estrarre tra un elenco movimenti l'elemento con Prezzo massimo per ogni elemento… si farebbe con una tabella derivata…

    Una cosa simile, ma credo di fraintendere.

    Select T1.Provenienza,MAXP.IdProdotto,MAXP.Massimo
    From T1 RIGHT JOIN (select IdProdotto, Max(Prezzo) as Massimo 
    From T1 Group By IdProdotto) AS MAXP ON 
    T1.IdProdotto=MAXP.IdProdotto AND T1.Prezzo=MAXP.Massimo
  • Re: Solo una riga per ogni occorrenza di un campo specifico

    20/01/2024 - @Alex ha scritto:


    Io non sono certo di capire, anche perché mi pare non ci sia un vero criterio..

    in effetti se non ha importanza la riga ma l'elenco delle città il criterio per gli altri campi non c'è ma gli basta un solo record per città (waip)…

Devi accedere o registrarti per scrivere nel forum
5 risposte