Query SQL

mercoledì 07 dicembre 2005 - 10.46

Pongo Profilo | Senior Member

Ciao a tutti, ho un problema con una select:
la select annidiata mi da i risultati "Microsoft" / "ClientePalladio" e "Microsoft"/"Prospect Palladio".

Io dopo vorrei avere solo il risultato "Microsoft" non duplicato e allora ho pensato di scrivere questa select:

select Ragione_Sociale from TB_Clienti where Ragione_Sociale in
(select Ragione_Sociale, Descrizione from TB_Clienti,TB_Configurazioni,TB_Attributi where
ID_Cliente=ID_Cliente_fk and ID_Attributo=ID_Attributo_fk and
(Descrizione='Cliente Palladio' or Descrizione='Prospect Palladio'));

però mi da questo errore: Only one expression can be specified in the select list when the subquery is not introduced with EXISTS.


Consigli?
Grazie!

Brainkiller Profilo | Guru

>però mi da questo errore: Only one expression can be specified
>in the select list when the subquery is not introduced with
> EXISTS.

E' normale, quando tu costruisci delle Subquery (query nidificata) puoi inserire nella select della subquery un solo campo inoltre la subquery deve tornare un solo record.

select *, (select a,b from altra_tabella) from tabella // ERRORE
select *, (select a from altra_tabella) from tabella // CORRETTO

Per prendere valori univoci puoi utilizzare il comando DISTINCT. Sicuramente puoi trovare una soluzione migliore mettendo in JOIN le tabelle, non conoscendo la struttura delle stesse è difficile darti una risposta.
ciao

David De Giacomi
Microsoft MVP
http://blogs.dotnethell.it/david/

Pongo Profilo | Senior Member

Ok, adesso funziona, grazie!

Ah, già che son qui posso chiedrti una cosa?

In sql ho un campo dati datetime e voglio inserire una data da asp.net.

In aspnet tiro fuori la data così:

string data=System.DateTime.Now.ToShortDateString();

e ottengo 7/12/2005

quando inserisco il dato in sql mi vien fuori 1/1/1900!

Why? Ho provato anche a impostare il campo dati a smalldatetime, ma il risultatonon cambia!



lbenaglia Profilo | Guru

>In sql ho un campo dati datetime e voglio inserire una data da
>asp.net.
>
>In aspnet tiro fuori la data così:
>
>string data=System.DateTime.Now.ToShortDateString();
>
>e ottengo 7/12/2005
>
>quando inserisco il dato in sql mi vien fuori 1/1/1900!
>
>Why? Ho provato anche a impostare il campo dati a smalldatetime,
> ma il risultatonon cambia!

Ciao Pongo,

leggi il seguente tip:
http://www.dotnethell.it/tips/SQLServerDates.aspx

Ciao!

--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org

Pongo Profilo | Senior Member

Thanks! Lunedì provo! :)

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-2023
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5