Visualizzazione dei risultati da 1 a 9 su 9

Discussione: Select annidata

  1. #1

    Select annidata

    Salve ho un problema a selezionare le marche dei prodotti più venduti;
    mi spiego:

    tabella carrello:
    Campi: nordine,cod_art,quantita,idprodotto,prodotto,ecc.. .

    tabella prodotti:
    Campi: cod_art,marca,idprodotto,prodotto,ecc..

    devo prelevare in pratca le marche più vendute, nel senso che per esempio vendo due paia di scarpe della nike, e una tuta della nike, tre tute dell'adidas, una felpa adidas,
    il tutto in ordini separati quindi equivale a 7 ordini.

    la select mi deve restituire

    Adidas|4
    Nike |3
    il problema e che l'unica cosa che mi lega il carrello ai prodotti e solo il cod_art,il prodotto e l'idprodotto

    spero abbiate capito

    Ciao David

  2. #2
    se ho capito bene la struttura del tuo db ti dovrebbe bastare questo:

    codice:
    SELECT COUNT(carrello.nordine) AS nVenduti, marca
    FROM carrello INNER JOIN prodotti ON carrello.cod_art=prodotti.cod_art
    GROUP BY marca
    ma nella tabella prodotti il campo marca può avere dei duplicati? se si attenzione perché non stai rispettando i criteri di integrità dei dati
    xxx

  3. #3
    Si sono duplicati, in che senso non sto rispettando i criteri di integrità dei dati
    cmq mi da dei risultati alcuni giusti altri sballati.

    ho modificato cosi:
    sql="SELECT COUNT(carrello.nordine) AS nVenduti,Sum(carrello.quantita) AS qt, marca FROM carrello INNER JOIN prodotti ON carrello.codice_art=prodotti.codice_art GROUP BY marca"
    ma sia nvenduti che la quantita in alcune marche è sballata
    Ciao david

  4. #4
    Ho provato ad inserire il campo marca anche nel carrello penso che sia più semplice adesso, eppure non riesco ancora a costruire questa query...

    Ciao david

  5. #5
    mea culpa, dovevo scrivere sum..
    prova questo:

    codice:
    SELECT SUM(carrello.quantita) AS nVenduti, prodotti.marca
    FROM carrello INNER JOIN prodotti ON carrello.cod_art=prodotti.cod_art
    GROUP BY marca
    per la questione dell'integrità, se nella tua tabella prodotti se ad una marca fanno riferimento più prodotti sarebbe più corretto creare una tabella marche ed una prodotti, che siano in relazione uno-a-molti.
    xxx

  6. #6
    Ma è cosi ho una tabella marche relazionata con la tabella prodotti.

    avevo già provato quest'ultima soluzione ma mi da questo:
    codice:
    ADIDAS-55 
    DUNLOP-5 
    ENERGY-24 
    NIKE-72 
    PENN-2
    penn e dunlop sono corretti perchè sono lo stesso articolo,
    adidas 5
    nike 6
    energy 4

    questo perchè sono articoli diversi della stessa marca.
    ma con l'inserimento del campo marca nel carrello non c'è una altra soluzione?
    ciao

  7. #7
    nessuno mi sa aiutare???

  8. #8
    con questo tipo di query, nella quantità mi mette il numero di prodotti presenti nella tabella prodotti non quelli effettivamente venduti

    Ciao david

  9. #9
    Qualcuno saprebbe aiutarmi a costruire questa query.

    Ripeto forse mi sono spiegato male nei post precedenti:

    tabella carrello:
    Campi: nordine,cod_art,quantita,idprodotto,prodotto,ecc.. .

    tabella prodotti:
    Campi: cod_art,idmarca,marca,idprodotto,prodotto,misura,e cc..
    (un record per ogni misura, quindi es. scarpe: un record per ogni misura di scarpa)

    tabella Marca:
    Campi: idmarca,marca

    devo prelevare le marche più vendute, nel senso che per esempio vendo due paia di scarpe della nike, e una tuta della nike, tre tute dell'adidas, due felpe adidas(in ordine unico),
    il tutto in ordini separati quindi equivale a 7 ordini.

    la select mi deve restituire

    Adidas|5 (prodotti)
    Nike |3 (prodotti)

    il problema e che l'unica cosa che mi lega il carrello ai prodotti e solo il cod_art,il prodotto e l'idprodotto.

    la query

    SELECT SUM(carrello.quantita) AS nVenduti, prodotti.marca
    FROM carrello INNER JOIN prodotti ON carrello.cod_art=prodotti.cod_art
    GROUP BY marca

    mi restituisce si le marche dei prodotti però al posto dei prodotti venduti mi torna il numero dei prodotti presenti nella tabella prodotti(es. scarpe= 12 perchè ci sono 12 record delle scarpe vendute(uno per ogni misura) ma in realta ne ho vendute solo 2)

    spero abbiate capito

    Ciao David

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.