244 messaggi dal 22 gennaio 2017
Contributi
Nel tuo ultimo messaggio hai scriptato solo la vista.
Per ricreare lo scenario mi servirebbero gli script della creazione delle tabelle e dei dati coinvolti.
348 messaggi dal 10 marzo 2013
Spero di aver capito

USE [EsaWeb]
GO

/****** Object: Table [dbo].[T_Professional] Script Date: 17/01/2018 16:13:47 ******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

SET ANSI_PADDING ON
GO

CREATE TABLE [dbo].[T_Professional](
[IdProfessional] [int] IDENTITY(1,1) NOT NULL,
[IdUser] [int] NULL,
[FotoTessera] [varchar](max) NULL,
[IdBrevetto] [int] NULL,
[P_Cognome] [varchar](20) NULL,
[P_Nome] [varchar](20) NULL,
[P_Indirizzo] [varchar](70) NULL,
[P_Località] [varchar](50) NULL,
[P_Cap] [varchar](10) NULL,
[P_Provincia] [varchar](10) NULL,
[P_Stato] [varchar](15) NULL,
[P_DataNascita] [date] NULL,
[P_Luogo] [varchar](50) NULL,
[P_CFiscale] [varchar](40) NULL,
[P_Telefono] [varchar](30) NULL,
[P_Cellulare] [varchar](30) NULL,
[P_EMail] [varchar](60) NULL,
[P_DataConsegnaBrev] [date] NULL,
[P_DataRinnovoBrev] [date] NULL,
[P_AnnoRinnovo] [int] NULL,
[IdCodiceSpecialità] [int] NULL,
[P_DataConsegnaSpec] [date] NULL,
[P_DataRinnovoSpec] [date] NULL,
[P_AnnoRinnovoSpec] [int] NULL,
[P_DataAssicurazione] [date] NULL,
[P_CodiceIcd] [int] NULL,
[IdEsaPoint] [int] NULL,
[IDSpCp] [int] NULL,
[P_CodiceEPSpec] [int] NULL,
[SupporterInstructor] [bit] NOT NULL,
[Stampa] [bit] NULL,
[DataInserimento] [datetime] NULL,
[IdIndirizzo] [int] NULL,
CONSTRAINT [PK_T_Professional_1] PRIMARY KEY CLUSTERED
(
[IdProfessional] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]

GO

SET ANSI_PADDING OFF
GO

ALTER TABLE [dbo].[T_Professional] ADD CONSTRAINT [DF_T_Professional_Stampa_1] DEFAULT ((0)) FOR [Stampa]
GO

ALTER TABLE [dbo].[T_Professional] ADD CONSTRAINT [DF_T_Professional_DataInserimento] DEFAULT (getdate()) FOR [DataInserimento]
GO
1.976 messaggi dal 27 luglio 2005
Contributi
salve,
mancano gli script DDL delle altre tabelle coinvolte (TUTTE le JOIN che sono referenziate)..
dopo di cio', dovresti aggiungere delle righe
INSERT INTO ....
(per tutte le tabelle coinvolte) in modo da popolare lo scenario e vedere dove si verifica la ridondanza...
saluti

Andrea Montanari
http://www.hotelsole.com - http://www.hotelsole.com/asql/index.php
348 messaggi dal 10 marzo 2013
Ok è possibile che seguiate passo passo oè troppo lungo?
E' ovviamente colpa della poca esperienza ma non riesco a capire come potermi far aiutare
Grazie
a tutti
244 messaggi dal 22 gennaio 2017
Contributi
Segui le istruzioni seguenti:
http://www.ssmstipsandtricks.com/blog/2015/06/30/generate-scripts-for-existing-table-schemas-and-data/
Seleziona tutte le tabelle coinvolte nella join.
Carica il file risultante su servizi come Dropbox onedrive etc così potremmo ricreare il tuo scenario.
Grazie
1.976 messaggi dal 27 luglio 2005
Contributi
Andrea Montanari ha scritto:
salve,
mancano gli script DDL delle altre tabelle coinvolte (TUTTE le JOIN che sono referenziate)..
dopo di cio', dovresti aggiungere delle righe
INSERT INTO ....
(per tutte le tabelle coinvolte) in modo da popolare lo scenario e vedere dove si verifica la ridondanza...
saluti


comunque, ovviamente:
1) dando per scontanto che la riga T_RinnovoAllievi.IdRinnovoPro = '7612' sia una ed una sola...

c'e' una delle JOIN che ritorna per T_RinnovoAllievi.IdRinnovoPro = '7612' non 1 ma 2 righe, e quindi la proiezione risultante ne contiene 2

il metodo triviale (ma non corretto) per risolvere e' utilizzare un DISTINCT nella proiezione... mentre il metodo corretto e' verificare, partendo da ogni singola JOIN, quale intersezione proietti 2 righe...

divertente... :|
saluti

Andrea Montanari
http://www.hotelsole.com - http://www.hotelsole.com/asql/index.php
348 messaggi dal 10 marzo 2013
Era l'unica soluzione che ho pensato alla mia portata.
Si è divertente (mica tanto) :)
Pero' servira' per farmi le ossa. :)
348 messaggi dal 10 marzo 2013
Ciao a tutti
Dovrei avere risolto.
Analizzando la situazione e' risultato molto più semplice di quanto sembrasse, provo a spiegarmi:

In pratica la seguente query

Select * FROM V_StampaRinnvoPro WHERE IdRinnovoPro = '1506'

mi restituiva 5 volte 1506 anche essendo una chiave primaria, durante un'attenta analisi ho notato pero
che, si la chiave era sempre la stessa ma, con record diversi e diverse righe null.
Utilizzando il filtro IS NOT NULL sono riuscito ad eliminare i doppioni inutili, nell'attesa di capire
laddove ho commesso l'errore in fase di inserimento dei dati.
Grazie a tutti per la disponobilita e per i preziosi consigli di cui faro tesoro.

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.