Visualizzazione dei risultati da 1 a 9 su 9

Discussione: raggruppare prodotti

  1. #1

    raggruppare prodotti

    ciao a tutti, ho un problema da cui nonnriesco ad uscire...ho un elenco di prodotti sul quale faccio una query di ricerca con LIKE la query mi restituisce per esempio

    nokia n91
    nokia n91 + tim
    nokia itlia n91
    motorola v996
    motorola italia v996

    io vorrei raggruppare in due voci nokia n91 e motorola v996, ho provato con group by nome ma non funziona perchè i nomi sono diversi come si può risolvere?

    Grazie mille

  2. #2
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,923
    group by substring(nomecampo,1,3) raggruppi per le prime 3 lettere del nome.

  3. #3
    non va bene perchè potrei avere anche nokia 6610 e me lo raggrupperebbe con nokia n91

  4. #4
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,923
    prova in questo modo
    codice:
    select
    @tpos:=LEAST(
    IF(LOCATE('1', campo) > 0, LOCATE('1', campo), 100),
    IF(LOCATE('2', campo) > 0, LOCATE('2', campo), 100),
    IF(LOCATE('3', campo) > 0, LOCATE('3', campo), 100),
    IF(LOCATE('4', campo) > 0, LOCATE('4', campo), 100),
    IF(LOCATE('5', campo) > 0, LOCATE('5', campo), 100),
    IF(LOCATE('6', campo) > 0, LOCATE('6', campo), 100),
    IF(LOCATE('7', campo) > 0, LOCATE('7', campo), 100),
    IF(LOCATE('8', campo) > 0, LOCATE('8', campo), 100),
    IF(LOCATE('9', campo) > 0, LOCATE('9', campo), 100) )
    As tpos,
    MID(nome, 1, @tpos-1) As stringa,
    (0+MID(nome, @tpos)) As numero
    from tabella
    group by substring(MID(campo, 1, @tpos-1),1,3),0+MID(campo, @tpos)

  5. #5
    ...

    tasto sbagliato

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  6. #6
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,923
    Ok.Ti squoto, domani ci farà sapere. Buona notte.

  7. #7
    Originariamente inviato da nicola75ss
    Ok.Ti squoto, domani ci farà sapere. Buona notte.
    non avevo capito che voleva il raggruppamento.

    codice:
    SELECT *, count(*) as tot
    FROM tabella
    group by campo
    having campo like '%n91%' 
    OR campo like '%v996%'

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  8. #8
    grazie mille per tutti gli aiuti dati però da quanto ho capito dovrei passare alla query un valore sul quale effettuare il ragruppamento. L'output della mia query non è quello sopra descritto potrebbe essere qualsiasi cosa per esempio se io ricerco cellulari il sistema mi ritorna tutti i modelli di cellulari di marche diverse e io ho bisogno di raggrupparli pèer modelli così da visualizzare solo un nokia n91 solo un nokia 6610 solo un motorola v669 solo un siemens c68 ecc. Io il modello non lo specifico e dato che a db posso avere nokia n91 come nokia italia n91 oppure nokia n91 italia + tim. A mio parere la cosa è molto complessa da realizzare nel senso che dovrebbe trovare il fattore in comune e raggrupparlo per quello.

  9. #9
    il software e' abile ma stupido. fa molto velocemente le cose che gli dici di fare. Le altre no.

    se vuoi raggruppare per modello gli devi dire quale. In altre parole aggiungi un campo con il solo valore "modello" e raggruppa su questo. I valori aggiunti al mero modello mettili in un campo descrizione.

    potresti anche fare una tabella apposita "modelli" con id-marca-modello e passare solo l'id alla tabella principale con le altre descrizioni.

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

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.