mhà è una cosa incredibile.. nessuno proprio vuole darmi una mano suquesta cosa.. non riesco a capire il perchè.. cmq:
codice:
select anagrafica_prodotti.img_prodotto AS APIMG, anagrafica_prodotti.cod_ean AS APCDEAN, Dati_DB_Prodotti.cod_euronics AS DPCDEUR, Dati_DB_Prodotti.marca AS MARCA, Dati_DB_Prodotti.modello_comm AS DPMC, Dati_DB_Prodotti.cod_ean1 AS DPCDEAN from Dati_DB_Prodotti, anagrafica_prodotti WHERE Dati_DB_Prodotti.marca='ALPINE' and Dati_DB_Prodotti.cod_ean1 = anagrafica_prodotti.cod_ean ORDER BY Dati_DB_Prodotti.modello_comm ASC
Analisi: devo recuperare tutti i record della tabella Dati_DB_Prodotti che soddisfino la clausola
codice:
Dati_DB_Prodotti.marca='ALPINE' and Dati_DB_Prodotti.cod_ean1 = anagrafica_prodotti.cod_ean
Siccome i record della tabella anagrafica_prodotti che soddisfano questa clausola sono duplicati devo fare qualcosa affinchè mi venga restituito un solo record tra quelli duplicati..
Bene.. qualcuno dice che bisogna usare Gourp By e Having..
ok mi documento e qui:
http://www.morpheusweb.it/html/manua...ql_groupby.asp
viene spiegato come funzionano queste due parole chiavi.. ma attenzione.. e qui ce la fregatura.. l'esempio lo si fà su un solo campo e su una sola funzione di aggregazione (SUM) che a me non serve.. infatti dovrei usare COUNT per contare i record duplicati (non metto il punto interroativo perchè sò che nessuno risponderà).
Dice:
[quote]
Funzioni aggregate (come SUM) spesso hanno bisogno della funzionalità GROUP BY.
GROUP BY...
GROUP BY... è stata inserita perchè le funzioni aggregate (come SUM) restituiscono un valore aggregato per tutte le colonne tutte le volte che vengono chiamate.
La sintassi è:
SELECT
colonna, SUM(colonna)
FROM
tabella
GROUP BY
colonna
[/code]
Bene.. cosa significa questo sopra.. dovrebbe significare letteralmente: Seleziona una colonna, somma questa colonna, da questa tabella e raggruppa per questa colonna..
Mh..
non ho capito molto bene.. mi fai un esempio?
Ok ti fccio un esempio:
codice:
Data questa tabella:
Società SUM(Ammontare)
Microsoft 17100
IBM 17100
Microsoft 17100
Questo è l'sql
SELECT
Società, SUM(Ammontare)
FROM
Vendite
GROUP BY
Società
Bene stò incominciando a capire.. Quindi: Seleziono il campo Società, sommo il campo Ammontare dalla tabella Vendite e raggruppo per società..
mh.. sembrava + semplice..
che cosa vorrà dire che raggruppo per società? guardo + in basso..
Questo è il risultato..
Restituisce come risultato:
Società SUM(Ammontare)
Microsoft 12600
IBM 4500
Ah ecco.. ha fatto la somma dei record duplicati ed ha raggruppato nel campo società i record duplicati..
Ho capito.. sono pronto.. adesso provo nella mia query, però io ho anche la condizione nella mia query.. nessun problema.. bisogna usare having al posto di where con le funzioni di aggregazione..
però la mia query è leggermente diversa, propone solo qualche campo in più.. ma chi se ne frega.. sarà la stessa cosa.. proviamoci lo stesso.. seguendo le indicazioni della query di sopra.. quindi:
codice:
select anagrafica_prodotti.img_prodotto AS APIMG, anagrafica_prodotti.cod_ean AS APCDEAN, Dati_DB_Prodotti.cod_euronics AS DPCDEUR, Dati_DB_Prodotti.marca AS MARCA, Dati_DB_Prodotti.modello_comm AS DPMC, Dati_DB_Prodotti.cod_ean1 AS DPCDEAN COUNT(anagrafica_prodotti.cod_ean) from Dati_DB_Prodotti, anagrafica_prodotti GROUP BY.. AZZ E QUI COSA SCRIVO ADESSO? NELL'ESEMPIO SOPRA SI RAGGRUPPA PER IL SOLO ED UNICO CAMPO SOCIETA'.. IO PER COSA DEVO RAGGRUPPARE? VABBE' DAI FACCIO CHE RAGGRUPPO PER Dati_DB_Prodotti.marca HAVING Dati_DB_Prodotti.marca='ALPINE' and Dati_DB_Prodotti.cod_ean1 = anagrafica_prodotti.cod_ean ORDER BY Dati_DB_Prodotti.modello_comm ASC
Eseguo.. e........... cacchio.. e ti pareva.. provo riprovo.. provo riprovo.. cambio.. inverto.. uff.. cerco su internet.. provo riprovo.. provo ..riprovo... niente da fare.. cerco sul forum... provo riprovo provo riprovo.. ancora nulla.. lo chiedo sul forum.. uh mi rispondono qualcuno dice che devo usare GROUP BY con HAVING..
provo provo riprovo provo riprovo.. niente.. non ci riesco.. non sò come fare.. adesso chiedo a qualcuno.. vediamo un pò.. uh.. mi rispondono.. mi dicono che devo imparare da solo..
allora io ci provo.. riprovo.. provo.. riprovo.. ma niente..
forse sono io che stò sbagliando.. forse non è il forum giusto.. o forse non è giusto chiedere sul forum.. vabbè dai.. mi fermo..