Particolare select su un'unica tabella

venerdì 26 ottobre 2012 - 13.04
Tag Elenco Tags  VB.NET  |  .NET 4.0  |  Windows Server 2008 R2  |  Visual Studio 2010

trinity Profilo | Guru

Salve ragazzi dovrei eseguire una select particolare su un'unica tabella e mi spiego anzi intanto vi posto un codice di esempio

Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra

Leggenda per capire il tipo alloggiato

0=Ospite singolo
1=Capo famiglia
2=Famigliare

Allora per determinare l'ospite singolo non ci vuole niente, il problema me lo sto creando se io scelgo di selezionare il capo famiglia che nel caso indicato la select dovrebbe restituire il seguente risultato:

10,1,132,0,Nero Sandro
10,2,133,132, Nero Anna

Io come parametrti ho solamente il cognome nome e tipo alloggiato....

Si può eseguire una select che mi dai il risultato richiesto?

Ciao
Cirillo Fabio
www.wondernet.biz
fabio@wondernet.biz
http://blogs.dotnethell.it/fabiocirillo/
http://wnetsoftware.blogspot.com

boccia75 Profilo | Junior Member

Ciao Trinity,
ecco la query:

select
* from tab_alloggiati where appartenenza='0' and cognome='nero'--tipoalloggiato='130'
and tipoalloggiato in (select appartenenza from tab_alloggiati)
union
select
* from tab_alloggiati where appartenenza<>'0' and cognome='nero' --appartenenza='130'
and appartenenza in (select tipoalloggiato from tab_alloggiati)

Lavora correttamente sia ricercando il cognome che ricercando il tipoalloggiato.
Ciao!

trinity Profilo | Guru

Non fuonziona!!! però riconrollando il codice che ho postato mi sono sbagliato a scrivere ecco quello corretto:

CREATE TABLE [dbo].[tab_Alloggiati](
[Codice_Albergo] [int] NOT NULL,
[Codice_Scheda] [bigint] NOT NULL,
[Tipoalloggiato] [smallint] NOT NULL,
[Appartenenza] [smallint] NOT NULL,
[Cognome] [nvarchar](50) NULL,
[Nome] [varchar](50) NULL,
[LuogoNascita] [varchar](100) NULL,
CONSTRAINT [PK_tab_Alloggiati_1] PRIMARY KEY CLUSTERED
(
[Codice_Albergo] ASC,
[Codice_Scheda] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]

GO


Insert into tab_alloggiati (codice_albergo,codice_scheda,appartenenza,tipoalloggiato,cognome,nome,luogonascita) Values (10,130,0,0,'Rossi','Mario','Roma')
Insert into tab_alloggiati (codice_albergo,codice_scheda,appartenenza,tipoalloggiato,cognome,nome,luogonascita) Values (10,131,0,0,'Verdi','Carmelo','Latina')
Insert into tab_alloggiati (codice_albergo,codice_scheda,appartenenza,tipoalloggiato,cognome,nome,luogonascita) Values (10,132,0,1,'Nero','Sandro','Torino')
Insert into tab_alloggiati (codice_albergo,codice_scheda,appartenenza,tipoalloggiato,cognome,nome,luogonascita) Values (10,133,132,2,'Nero','Anna','Torino')

in pratica ciò che accumana qualcora ci fosse il caso tra capo famiglia e famigliare è il valore del codice_scheda che ad entrambi è diverso ma nel caso del famigliare il valore dell'appartenenza diventa il valore del codice_scheda del capo famiglia.

Io come parametri posso avere, cognome,nome,tipoalloggiato

Ciaoe grazie
Cirillo Fabio
www.wondernet.biz
fabio@wondernet.biz
http://blogs.dotnethell.it/fabiocirillo/
http://wnetsoftware.blogspot.com

boccia75 Profilo | Junior Member

-

boccia75 Profilo | Junior Member

Questa mi piace MOLTO di piu'

select
* from tab_alloggiati where tipoalloggiato='1' and cognome='nero' and nome='sandro'
union
select
* from tab_alloggiati where
appartenenza in (select codice_scheda from tab_alloggiati where tipoalloggiato='1' and cognome='nero' and nome='sandro')



Ciao!
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2017
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5