Pagina 2 di 2 primaprima 1 2
Visualizzazione dei risultati da 11 a 16 su 16

Discussione: query su record doppi

  1. #11
    Utente di HTML.it
    Registrato dal
    Sep 2007
    Messaggi
    1,171
    tabella composta cosi:
    campi:
    cognome tipoA - valoreA - tipoB---valoreB
    GIUSEPPE----A -----22-----------------
    GIUSEPPE--------------------B--------22
    ANTONIO-----A------34------------------

    RISULTATO:
    cognome tipoA - valoreA - tipoB---valoreB
    GIUSEPPE----A -----22--------B-------22
    ANTONIO-----A------34------------------

    devo in pratica quando il cognome è uguale creare da due righe una sola

  2. #12
    ok, visto che riposti sempre lo stesso esempio, rifaccio la stessa domanda. di cognomi uguali ce ne possono essere al massimo due? nell'esempio, max 2 ANTONIO? o di ANTONIO ce ne possono essere anche 3, 4, ... N?

  3. #13
    Utente di HTML.it
    Registrato dal
    Sep 2007
    Messaggi
    1,171
    scusa ma avevo gia risposto ,
    di cognomi possono essere piu di 2 ma mai
    cognome tipoA uguali
    non posso avere due record ANTONIO TIPOA uguali.

  4. #14
    no, non avevi risposto. la domanda era proprio sui cognomi uguali. mo' ce penzo

  5. #15
    Utente di HTML.it
    Registrato dal
    Sep 2007
    Messaggi
    1,171
    posso utilizare invece del cognome i codici fiscali,
    è uguale

  6. #16
    Utente di HTML.it L'avatar di nman
    Registrato dal
    Jan 2011
    residenza
    Milano
    Messaggi
    1,333
    Mi sembra troppo facile ma le cose troppo
    facili spesso nascondono qualcosa

    Comunque se la tabella è questa

    codice:
    CREATE TABLE [dbo].[Ta](
    	[Id] [int] IDENTITY(1,1) NOT NULL,
    	[cognome] [nchar](10) NULL,
    	[tipo1] [nchar](10) NULL,
    	[valore1] [nchar](10) NULL,
    	[tipo2] [nchar](10) NULL,
    	[valore2] [nchar](10) NULL
    ) ON [PRIMARY]
    io farei un raggruppamento sul " cognome "
    e un Max sugli altri 4 campi

    _______________________________________________

    partendo dal presupposto
    1°) che ci siano al massimo 2 cognomi uguali

    e presupponendo anche che per ogni gruppo di cognomi
    2°) ci sia al massimo 1 valore di " tipo1 "
    3°) ci sia al massimo 1 valore di " valore1 "
    4°) ci sia al massimo 1 valore di " tipo2 "
    5°) ci sia al massimo 1 valore di " valore2 "

    Omettiamo di chiederci se per ogni gruppo
    "tipo1" è scritto sullo stesso record di "valore1"
    ecc

    _______________________________________________

    La query potrebbe quindi essere:

    codice:
    SELECT 
    
    cognome, 
    MAX(tipo1) AS MT1, 
    MAX(valore1) AS MV1, 
    MAX(tipo2) AS MT2, 
    MAX(valore2) AS MV2, 
    
    CASE WHEN COUNT(cognome) > 2 THEN 1 ELSE 0 END 
    + 
    CASE WHEN COUNT(tipo1) > 1 THEN 1 ELSE 0 END 
    + 
    CASE WHEN COUNT(valore1) > 1 THEN 1 ELSE 0 END 
    + 
    CASE WHEN COUNT(tipo2) > 1 THEN 1 ELSE 0 END 
    + 
    CASE WHEN COUNT(valore2) > 1 THEN 1 ELSE 0 END 
    AS Erroor
    
    FROM         dbo.Ta
    
    GROUP BY cognome
    Dove l'ultimo campo ( Erroor ) verifica i presupposti
    e restituisce un valore di errore variabile
    __ fra 0 ( se va tutto bene )
    __ e 5 ( se tutti i presupposti non sono verificati )


    __________________________________________________ ____

    Se ritieni puoi eliminare il campo " Erroor "
    cosi la query si semplifica notevolmente


    Saluti

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.