348 messaggi dal 10 marzo 2013
Salve a tutti
Avrei bisogno di un aiuto se è possibile:
In un DB SQL ho la seguente vista cosi strutturata :

SELECT TOP (100) PERCENT T_RinnovoAllievi.IdRinnovoPro, T_Allievi.IdProfessional AS IdAllievi, T_Allievi.FotoTessera, T_Allievi.P_Nome, T_Allievi.P_Cognome, T_Allievi.P_DataNascita,
T_BrevettiAllievi.IdBrevetto, T_BrevettiAllievi.Sigla AS AcrBrevetto, T_BrevettiAllievi.Descrizione, T_BrevettiAllievi.Certificazione, dbo.T_Specialità.Sigla AS AcroSpec,
dbo.T_Specialità.Descrizione AS DescSpec, T_StoricoAllievi.DataConvalida, T_RinnovoAllievi.AnnoRinnovo, T_RinnovoAllievi.DataRinnovo, dbo.T_EsaPoint.IDEsaPoint,
dbo.T_EsaPoint.TipoAffiliato, dbo.T_EsaPoint.RagioneSociale, T_Trainer.IdProfessional AS IdTrainer, T_Trainer.P_Nome AS NomeTrainer, T_Trainer.P_Cognome AS CognomeTrainer,
T_BrevettiTrainer.IdBrevetto AS IdBrevettoTrainer, T_BrevettiTrainer.Sigla AS SiglaBrevTrainer, T_RinnovoAllievi.IdUser, T_RinnovoAllievi.Stampa, T_RinnovoAllievi.DataInserimento
FROM dbo.T_Brevetti AS T_BrevettiTrainer RIGHT OUTER JOIN
dbo.T_Professional AS T_Trainer RIGHT OUTER JOIN
dbo.T_StoricoProf AS T_StoricoAllievi INNER JOIN
dbo.T_Professional AS T_Allievi ON T_StoricoAllievi.IdProfessional = T_Allievi.IdProfessional ON T_Trainer.IdProfessional = T_StoricoAllievi.P_CodiceIcd LEFT OUTER JOIN
dbo.T_EsaPoint ON T_StoricoAllievi.IdEsaPoint = dbo.T_EsaPoint.IDEsaPoint LEFT OUTER JOIN
dbo.T_Specialità ON T_StoricoAllievi.IdCodiceSpecialità = dbo.T_Specialità.IdCodiceSpecialità LEFT OUTER JOIN
dbo.T_Brevetti AS T_BrevettiAllievi ON T_StoricoAllievi.IdBrevetto = T_BrevettiAllievi.IdBrevetto LEFT OUTER JOIN
dbo.T_RinnovoPro AS T_RinnovoAllievi ON T_Allievi.IdProfessional = T_RinnovoAllievi.IdProfessional AND T_StoricoAllievi.IdBrevetto = T_RinnovoAllievi.IdBrevetto ON
T_BrevettiTrainer.IdBrevetto = T_Trainer.IdBrevetto
WHERE (T_RinnovoAllievi.IdRinnovoPro IS NOT NULL)
ORDER BY T_RinnovoAllievi.IdRinnovoPro


Quando La interrogo pero ottengo dei risultai ridondanti per esempio :

Query :

use esaweb
go

Select * from V_StamparinnovoPro WHERE IDrinnovoPro = '7612'

ottengo in questo caso 2 record uguali con lo stesso IDrinnovoPro '7612', in alcuni casi i risultati ridondanti sono di piu
mi date una mano?
Grazie in anticipo
244 messaggi dal 22 gennaio 2017
Contributi
Ciao,
Potresti riportare lo schema e qualche dato? Non sono in grado di aiutarti altrimenti.
Utilizza questo strumento per ricreare la struttura del DB e i dati: http://sqlfiddle.com/
Grazie
348 messaggi dal 10 marzo 2013
Non mi è ben chiaro come usare lo strumento suggeritomi.
Grazie lo stesso.
244 messaggi dal 22 gennaio 2017
Contributi
Lo strumento è molto semplice.
Nel riquadro di sinistra va inserito il codice per creare le tabelle e i dati.
Nel riquadro di destra invece va inserita la query che tu stesso hai riportato sotto.

Aiutandoti con il sql server management studio, con qualche copia e incolla, dovresti riuscire a replicare la situazione.

Un esempio: http://sqlfiddle.com/#!6/ca0ba/1
Modificato da andrea.tosato86 il 11 gennaio 2018 17.42 -
348 messaggi dal 10 marzo 2013
Ciao
Lo strumento mi restituisce un errore: Invalid object name 'V_StampaRinnovoPro'

Errore che non ho se eseguo la query su sql.
Modificato da Oiram il 12 gennaio 2018 11.28 -
244 messaggi dal 22 gennaio 2017
Contributi
Ciao, hai il modo di condividermi lo script SQL per la creazione delle tabelle e dei dati?
Così posso capire la causa della ridondanza.
Grazie.
348 messaggi dal 10 marzo 2013
Non so se ho capito bene cosa mi hai chiesto ma credo di si.
Ci aggiorniamo lunedi, questo fine settimana lavoro.
Grazie 1000 per la disponibilità
348 messaggi dal 10 marzo 2013
Non so se è quello che intendevi: a me sembra di no. in Ogni caso non ti disperare in qualche modo risolvero.
Ho generato lo script ed ho ottenuto questo:

USE [EsaWeb]
GO
/****** Object: View [dbo].[V_StampaRinnovoPro] Script Date: 15/01/2018 12:40:01 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE VIEW [dbo].[V_StampaRinnovoPro]
AS
SELECT TOP (100) PERCENT T_RinnovoAllievi.IdRinnovoPro, T_Allievi.IdProfessional AS IdAllievi, T_Allievi.FotoTessera, T_Allievi.P_Nome, T_Allievi.P_Cognome, T_Allievi.P_DataNascita, T_BrevettiAllievi.IdBrevetto,
T_BrevettiAllievi.Sigla AS AcrBrevetto, T_BrevettiAllievi.Descrizione, T_BrevettiAllievi.Certificazione, dbo.T_Specialità.Sigla AS AcroSpec, dbo.T_Specialità.Descrizione AS DescSpec,
T_StoricoAllievi.DataConvalida, T_RinnovoAllievi.AnnoRinnovo, T_RinnovoAllievi.DataRinnovo, dbo.T_EsaPoint.IDEsaPoint, dbo.T_EsaPoint.TipoAffiliato, dbo.T_EsaPoint.RagioneSociale,
T_Trainer.IdProfessional AS IdTrainer, T_Trainer.P_Nome AS NomeTrainer, T_Trainer.P_Cognome AS CognomeTrainer, T_BrevettiTrainer.IdBrevetto AS IdBrevettoTrainer,
T_BrevettiTrainer.Sigla AS SiglaBrevTrainer, T_RinnovoAllievi.IdUser, T_RinnovoAllievi.Stampa, T_RinnovoAllievi.DataInserimento
FROM dbo.T_Brevetti AS T_BrevettiTrainer RIGHT OUTER JOIN
dbo.T_RinnovoPro AS T_RinnovoAllievi INNER JOIN
dbo.T_StoricoProf AS T_StoricoAllievi INNER JOIN
dbo.T_Professional AS T_Allievi ON T_StoricoAllievi.IdProfessional = T_Allievi.IdProfessional ON T_RinnovoAllievi.IdProfessional = T_Allievi.IdProfessional AND
T_RinnovoAllievi.IdBrevetto = T_StoricoAllievi.IdBrevetto LEFT OUTER JOIN
dbo.T_Professional AS T_Trainer ON T_StoricoAllievi.P_CodiceIcd = T_Trainer.IdProfessional LEFT OUTER JOIN
dbo.T_EsaPoint ON T_StoricoAllievi.IdEsaPoint = dbo.T_EsaPoint.IDEsaPoint LEFT OUTER JOIN
dbo.T_Specialità ON T_StoricoAllievi.IdCodiceSpecialità = dbo.T_Specialità.IdCodiceSpecialità LEFT OUTER JOIN
dbo.T_Brevetti AS T_BrevettiAllievi ON T_StoricoAllievi.IdBrevetto = T_BrevettiAllievi.IdBrevetto ON T_BrevettiTrainer.IdBrevetto = T_Trainer.IdBrevetto
WHERE (T_RinnovoAllievi.IdRinnovoPro IS NOT NULL)
ORDER BY T_RinnovoAllievi.IdRinnovoPro

GO
EXEC sys.sp_addextendedproperty @name=N'MS_DiagramPane1', @value=N'[0E232FF0-B466-11cf-A24F-00AA00A3EFFF, 1.00]
Begin DesignProperties =
Begin PaneConfigurations =
Begin PaneConfiguration = 0
NumPanes = 4
Configuration = "(H (1[63] 4[5] 2[26] 3) )"
End
Begin PaneConfiguration = 1
NumPanes = 3
Configuration = "(H (1 [50] 4 [25] 3))"
End
Begin PaneConfiguration = 2
NumPanes = 3
Configuration = "(H (1 [50] 2 [25] 3))"
End
Begin PaneConfiguration = 3
NumPanes = 3
Configuration = "(H (4 [30] 2 [40] 3))"
End
Begin PaneConfiguration = 4
NumPanes = 2
Configuration = "(H (1 [56] 3))"
End
Begin PaneConfiguration = 5
NumPanes = 2
Configuration = "(H (2 [66] 3))"
End
Begin PaneConfiguration = 6
NumPanes = 2
Configuration = "(H (4 [50] 3))"
End
Begin PaneConfiguration = 7
NumPanes = 1
Configuration = "(V (3))"
End
Begin PaneConfiguration = 8
NumPanes = 3
Configuration = "(H (1[56] 4[18] 2) )"
End
Begin PaneConfiguration = 9
NumPanes = 2
Configuration = "(H (1 [75] 4))"
End
Begin PaneConfiguration = 10
NumPanes = 2
Configuration = "(H (1[66] 2) )"
End
Begin PaneConfiguration = 11
NumPanes = 2
Configuration = "(H (4 [60] 2))"
End
Begin PaneConfiguration = 12
NumPanes = 1
Configuration = "(H (1) )"
End
Begin PaneConfiguration = 13
NumPanes = 1
Configuration = "(V (4))"
End
Begin PaneConfiguration = 14
NumPanes = 1
Configuration = "(V (2))"
End
ActivePaneConfig = 0
End
Begin DiagramPane =
Begin Origin =
Top = 0
Left = 0
End
Begin Tables =
Begin Table = "T_BrevettiTrainer"
Begin Extent =
Top = 204
Left = 0
Bottom = 334
Right = 191
End
DisplayFlags = 280
TopColumn = 8
End
Begin Table = "T_Trainer"
Begin Extent =
Top = 0
Left = 0
Bottom = 169
Right = 203
End
DisplayFlags = 280
TopColumn = 0
End
Begin Table = "T_StoricoAllievi"
Begin Extent =
Top = 15
Left = 225
Bottom = 290
Right = 416
End
DisplayFlags = 280
TopColumn = 0
End
Begin Table = "T_Allievi"
Begin Extent =
Top = 13
Left = 516
Bottom = 200
Right = 719
End
DisplayFlags = 280
TopColumn = 0
End
Begin Table = "T_EsaPoint"
Begin Extent =
Top = 336
Left = 0
Bottom = 506
Right = 191
End
DisplayFlags = 280
TopColumn = 0
End
Begin Table = "T_Specialità"
Begin Extent =
Top = 275
Left = 451
Bottom = 498
Right = 642
End
DisplayFlags = 280
TopColumn = 0
End
Begin Table = "T_BrevettiAllievi"
Begin Extent =
Top = 221
Left = 753
Bottom = 506
Right = 944
' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'VIEW',@level1name=N'V_StampaRinnovoPro'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_DiagramPane2', @value=N' End
DisplayFlags = 280
TopColumn = 0
End
Begin Table = "T_RinnovoAllievi"
Begin Extent =
Top = 18
Left = 894
Bottom = 399
Right = 1105
End
DisplayFlags = 280
TopColumn = 0
End
End
End
Begin SQLPane =
End
Begin DataPane =
Begin ParameterDefaults = ""
End
Begin ColumnWidths = 27
Width = 284
Width = 1500
Width = 1500
Width = 1500
Width = 1500
Width = 1500
Width = 1500
Width = 1500
Width = 1500
Width = 1500
Width = 1500
Width = 1500
Width = 1500
Width = 1500
Width = 1500
Width = 1500
Width = 1500
Width = 1500
Width = 1500
Width = 1500
Width = 1500
Width = 1500
Width = 1500
Width = 1500
Width = 1500
Width = 1500
Width = 1500
End
End
Begin CriteriaPane =
Begin ColumnWidths = 11
Column = 1905
Alias = 2880
Table = 1545
Output = 720
Append = 1400
NewValue = 1170
SortType = 1350
SortOrder = 1410
GroupBy = 1350
Filter = 1350
Or = 1350
Or = 1350
Or = 1350
End
End
End
' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'VIEW',@level1name=N'V_StampaRinnovoPro'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_DiagramPaneCount', @value=2 , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'VIEW',@level1name=N'V_StampaRinnovoPro'
GO

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.