Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 15

Discussione: Rubrica Impossibile?

  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2003
    Messaggi
    60

    Rubrica Impossibile?

    Scusate se insisto, ma sono convinto che deve esistere un modo per aprire un record come dico io. Questa discussione è già stata affrontata, ma vorrei approfondirla. Cercherò di spiegare (ma non sono certo di farcela) le mie esigenze.
    Ho un database che contiene gli ordini effettuati dai clienti. Per ogni ordine effettuato l'anagrafica viene duplicata (se già esistente). L'ordine ha un codice carpette che funziona da collegamento tra i vari record che si riferiscono al signor mario rossi o al signor giuseppe verdi.
    In pratica per ogni record ci sono queste informazioni:
    id_cliente = 1
    nome = mario
    cognome = rossi
    ordine = penne
    carpette = 123456

    altro ordine
    id_cliente = 876
    nome = mario
    cognome = rossi
    ordine = penne
    carpette = 123456

    ho fatto in modo che ogni volta che viene modificata l'anagrafica venga aggiornata automaticamente a tutti gli altri record che hanno lo stesso codice carpette
    Adesso vorrei creare una rubrica che mi faccia vedere una sola volta nome, cognome, indirizzo, etc e, cliccando su quella stringa, vorrei che si aprisse in una pagina di modifica della sola anagrafica. Per aprirla attualmente utilizzo il codice id_cliente che rende impossibile usare GROUP BY.

    Qualcuno di voi ha una soluzione da suggerirmi?
    Sto smanettando da giorni su internet senza trovare spunti.
    Grazie a tutti e un grazie particolare a Optime con il quale mi scuso per il disturbo

  2. #2
    Utente di HTML.it L'avatar di barney09
    Registrato dal
    Dec 2000
    Messaggi
    1,296
    scusa ma perchè l'id cliente è diverso di volta in volta nonostante si riferisca alllo stesso cliente?


    Il problema di questo database, da quanto si capisce, è che non è normalizzato.

    Andrebbe fatto un DB clienti dove ogni cliente è presente una sola volta.

    A quel punto nella tabella ordini si mette solo l'ID cliente, che fa appunto riferimento all'unica scheda cliente.

    Tutti gli ordini dello stesso cliente avranno quindi lo stesso IDCLIENTE.

  3. #3
    Utente di HTML.it L'avatar di barney09
    Registrato dal
    Dec 2000
    Messaggi
    1,296
    puoi usare il distinct:

    select distinct cognome, nome, indirizzo FROM

  4. #4
    Utente di HTML.it
    Registrato dal
    Nov 2003
    Messaggi
    60
    l'id_cliente è diverso per ogni ordine perché ogni ordine ha vita propria. Quindi ha nome, cognome, merce, id_cliente. L'unica cosa che riunisce le anagrafiche del signor Rossi è il codice carpette. Considerate che io ho dovuto adattarmi a questo database in quanto i clienti erano già stati inseriti con questo criterio da un precedente utilizzatore.
    A dire il vero ho provato anche a dividerli, ma ho dei problemi grossi con la ridondanza.
    In pratica ho diviso così
    tabella anagrafiche
    tabella ordini

    per leggere gli ordini ho fatto questa query che non mi raggruppa assolutamente le anagrafiche. Sinceramente non ho mai utilizzato inner join e comunque credo che ci siano anche problemi di struttura del database

    SELECT polizze.carpette, anagrafe.carpette, anagrafe.societa, anagrafe.nome,anagrafe.cognome, anagrafe.resCitta, anagrafe.Tmobi, Anagrafe.Tmobi1, polizze.id_polizza FROM polizze INNER JOIN anagrafe ON anagrafe.carpette = polizze.carpette AND (anagrafe.societa LIKE '" & testo & "%')
    GROUP BY polizze.carpette, anagrafe.carpette, anagrafe.societa, anagrafe.nome,anagrafe.cognome, anagrafe.resCitta, anagrafe.Tmobi, Anagrafe.Tmobi1, polizze.id_polizza ORDER BY societa ASC

  5. #5
    Utente di HTML.it
    Registrato dal
    Nov 2003
    Messaggi
    60
    scusate, ma ho riportato il codice togliendo varie if o cose del genre e non ho riscritto Where.
    questo è il codice giusto


    SELECT polizze.carpette, anagrafe.carpette, anagrafe.societa, anagrafe.nome,anagrafe.cognome, anagrafe.resCitta, anagrafe.Tmobi, Anagrafe.Tmobi1, polizze.id_polizza FROM polizze INNER JOIN anagrafe ON anagrafe.carpette = polizze.carpette WHERE (anagrafe.societa LIKE '" & testo & "%')
    GROUP BY polizze.carpette, anagrafe.carpette, anagrafe.societa, anagrafe.nome,anagrafe.cognome, anagrafe.resCitta, anagrafe.Tmobi, Anagrafe.Tmobi1, polizze.id_polizza ORDER BY societa ASC

  6. #6
    Utente di HTML.it
    Registrato dal
    Nov 2003
    Messaggi
    60
    distinct? ho provato, ma forse l'ho utilizzato male. io ho questa query
    sql = "SELECT * FROM dati WHERE id_cliente > 0 "


    record = 0
    For conta = 0 To UBound(query)
    ' if trim(request.form("ricerca")) = "" then
    sql = sql & " AND (soc LIKE '%" & query(conta) & "%'"
    sql = sql & " OR cognome LIKE '%" & query(conta) & "%')"
    ' else
    ' sql = sql & " AND (soc LIKE '%" & query(conta) & "%')"
    ' sql = sql & " OR cognome LIKE '%" & query(conta) & "%')"
    ' end if
    Next
    sql = sql & " ORDER BY soc ASC"


    dovrei mettere sql = "select DISTINCT(soc, nome, cognome...)

  7. #7
    Utente di HTML.it
    Registrato dal
    Nov 2003
    Messaggi
    60
    ho provato mettendo select distinct carpette, * from
    ma il risultato è lo stesso.
    dovrei sostituire l'asterisco con gli altri campi che utilizzo?

  8. #8
    Utente di HTML.it
    Registrato dal
    Nov 2003
    Messaggi
    60
    scusate ma devo uscire per un paio d'ore....

  9. #9
    Utente di HTML.it L'avatar di barney09
    Registrato dal
    Dec 2000
    Messaggi
    1,296
    non puoi mettere l'asterisco, devi mettere l'elenco dei campi che devi estrarre in modo univoco.

  10. #10
    e NON devi mettere l'id_cliente (fa' una cosa, rinomina quel campo, chiamalo id_ordine!) ma solo i dati del cliente. tutto il resto è NON univoco.

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 © 2026 vBulletin Solutions, Inc. All rights reserved.