66 messaggi dal 13 settembre 2013
Salve a tutti,ho una tabella "Supporto" che unisce (tramite due foreign key) due tabelle "Tabella1" e "Tabella2",quindi in "Supporto" troverò per ogni riga le coppie "id_componente1"(appartenente a Tabella1) e "id_componente2"(appartenente a Tabella2).Avrei la necessità di prelevare un certo numero di righe da "Supporto" dove id_Componente1 sia uguale al valore da me scelto (con un select) e copiare queste righe in una nuova tabella "Tabella_Destinazione" (ho risolto fin qui..) assegnandoli però un ID (o comunque un flag) che le raggruppi e quindi le identifichi come se fossero un singolo record in "Tabella_Destinazione" (è questo che non mi riesce..).E' possibile fare questo?Avete qualche suggerimento in proposito?Purtroppo non riesco a trovare una soluzione.
Grazie in anticipo per la disponibilità
Cordiali Saluti
5 messaggi dal 18 ottobre 2013
Se ho capito bene la tua richiesta, questa potrebbe essere la soluzione
​​

create table #Supporto
(
id_componente1 int not null,
id_componente2 int not null,
descrizione varchar(100) null
Primary key (id_componente1, id_componente2)
)

create table #componente1
(
id_componente1 int not null,
descrizione varchar(100) null
Primary key (id_componente1)
)

create table #componente2
(
id_componente2 int not null,
descrizione varchar(100) null
Primary key (id_componente2)
)

create table #destinazione
(
id_componente1 int not null,
id_componente2 int not null,
CodGruppo varchar(100) null
Primary key (id_componente1, id_componente2)
)


insert into #componente1
Select 1, 'Descrizione1'
union
Select 2, 'Descrizione2'
union
Select 3, 'Descrizione3'
union
Select 4, 'Descrizione4'
union
Select 5, 'Descrizione5'
union
Select 6, 'Descrizione6'

insert into #componente2
Select 1, 'Descrizione1'
union
Select 2, 'Descrizione2'
union
Select 3, 'Descrizione3'
union
Select 4, 'Descrizione4'
union
Select 5, 'Descrizione5'
union
Select 6, 'Descrizione6'

insert into #Supporto
select 1,1,'Supporto 1 - 1'
union
select 1,2,'Supporto 1 - 2'
union
select 1,3,'Supporto 1 - 3'
union
select 2,4,'Supporto 2 - 4'
union
select 2,5,'Supporto 2 - 5'
union
select 3,6,'Supporto 3 - 6'
union
select 4,5,'Supporto 4 - 6'
union
select 5,4,'Supporto 5 - 5'
union
select 6,6,'Supporto 6 - 6'

insert into #destinazione
Select #componente1.id_componente1, #componente2.id_componente2, 'Metti qui il tuo codice di raggruppamento'
from #Supporto
inner join #componente1 on #Supporto.id_componente1 = #componente1.id_componente1
inner join #componente2 on #Supporto.id_componente2 = #componente2.id_componente2
Where #componente1.id_componente1 = 1

select * from #destinazione
Puoi creare una tabella che sta in relazione uno a molti con tabella_destinazione.
In questa nova tabella crei un record e quando importi i dati in tabella_destinazione ai record aggiunti al campo che ti mette in relazione con la nuova tabella metti l'id del record che hai creato in questa tabella.
In questo modo li puoi raggruppare come desideri in base all'origine.

Alessio Arrigoni - CONSULENTE INFORMATICO
https://www.alessioarrigoni.it
https://www.assistenzapccomo.it
66 messaggi dal 13 settembre 2013
quindi se non ho capito male dovrei fare così:
1)Dalla tabella "Supporto" copio in Tabella_Destinazione" ad esempio le seguenti tre righe (filtrate per id_componente1=1)
id_componente1 id_componente2
1 1
1 3
1 4
naturalmente in "Tabella_Destinazione" oltre a queste righe ci saranno altre righe copiate in passato

2)creo un record di "Nuova_Tabella" che sta in relazione uno a molti con "Tabella_Destinazione" (cioè a un elemento di Nuova_Tabella ne corrispondono molti di "Tabella_Destinazione") tramite ad esempio il campo "ID_nuovo" (chiave primaria in Nuova_Tabella e chiave esterna in Tabella_Destinazione)

3)Se supponiamo che ID_nuovo = 1 come faccio a livello di codice come dici tu a metterlo nel campo ID_nuovo di "Tabella_Destinazione" ?

Scusa ma sono ancora agli inizi
Ciao e grazie
5 messaggi dal 18 ottobre 2013
Scusa, ma non riesco a capire il tuo ultimo post.
Mi dici i nomi reali delle tabelle e cosa vuoi ottenere.
Più hai chiaro il risultato che vuoi ottenere e più facile sarà realizzarlo.



Marco
66 messaggi dal 13 settembre 2013
Ciao scusami hai ragione,allora io dispongo di due tabelle "Componenti" e "Prodotti_Finiti" in relazione molti a molti,quindi nella tabella di supporto che io ho chiamato "DistintaBase" avrò in ogni riga la coppia costituita dal ID_prodotto_finito e ID_componente.Ora vorrei supponiamo filtrando ad es. con un id_prodotto_finito=1 prendermi le righe dove id_prodotto_finito=1 e portarmele in una nuova tabella che chiamerò "DistintaProduzione" (e fin qui ci sono).Questo l'ho fatto perchè a partire dalla distinta base vorrei tirarmi fuori più distinte di produzione modificando la distinta base che ho copiato.Quindi in DistintaProduzione ho tutte le distinte base copiate ma è necessario che le identifichi per distinguerle tra loro (distinta_produzione1,distinta_produzione2 etc..).Nel post precedente mi è stato consigliato di legare alla tabella che io chiamo DistintaProduzione una nuova tabella con relazione uno a molti,crearmi un record di questa nuova tabella e poi andare in tabella DistintaProduzione e assegnarli l'ID del record creato nella nuova tabella.Solo che non ho chiaro questo passaggio.
Ciao e grazie
Modificato da Utente82 il 31 ottobre 2013 15.19 -
66 messaggi dal 13 settembre 2013
Ciao scusa alessioarrigoni, volevo solo chiederti ma quando tu dici:"quando importi i dati in tabella_destinazione ai record aggiunti al campo che ti mette in relazione con la nuova tabella metti l'id del record che hai creato in questa tabella" non ho capito se l'id del record creato nella nuova tabella va messo nel campo contemporaneamente all'operazione di importazione oppure in un secondo momento.
Ciao e grazie
Prima crei il record nella tabella che sta a monte (quella del lato uno della relazione), poi quando importi nel campo che ti permette di fare il join con la tabella del lato uno della relazione metti l'id del record che hai appena creato nel passaggio precedente.
É più complicato da spiegare che a farsi ...

Alessio Arrigoni - CONSULENTE INFORMATICO
https://www.alessioarrigoni.it
https://www.assistenzapccomo.it

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.