Select con top e count

venerdì 26 settembre 2008 - 13.13

trinity Profilo | Guru

Ciao a tutti,

supponiamo che ho una tabella chiamata movimenti ed in questa tabella ci sono i seguenti movimenti:


id - codclie - dataArrivo - DataPartenza
1 10 25-09-2008 26-09-2008
2 10 25-09-2008 NULL
3 10 25-09-2008 NULL
4 10 25-09-2008 NULL
5 10 25-09-2008 NULL
6 10 26-09-2008 NULL
7 10 26-09-2008 NULL
8 10 26-09-2008 NULL

allora se io eseguo un count del genere avrò:

Select count(*) from movimenti where codclie=4 and datapartenza is null

result: 7

invece se devo eseguire solo un top= 7 avremo:

Select top 5 dataarrivo from movimenti where codclie=4 and datapartenza is null

result:

id - codclie - dataArrivo - DataPartenza
2 10 25-09-2008 NULL
3 10 25-09-2008 NULL
4 10 25-09-2008 NULL
5 10 25-09-2008 NULL
6 10 26-09-2008 NULL

fino qui tutto ok.

Ora io devo creare una select che mi calcoli il count per il numero di record che voglio quindi per un valore che passo nella top.
Ossia nel secondo esempio il top a preso 5 record io devo ottenere questo valore attraverso una query.

potrei risolvere secondo voi con delle select annidate o una distinct?

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

Brainkiller Profilo | Guru

>potrei risolvere secondo voi con delle select annidate o una
>distinct?

La tua contorsione nello spiegare un concetto è veramente rara infatti non riesco mai a capire che cosa vuoi sapere. Posso solo immaginarlo lontanamente. Quindi immagino che si possa fare sia con delle Subquery oppure anche joinando le tabelle con resultset parziali o viste. Se articoli meglio la tua richiesta, posso migliorare anche la mia risposta.
Ciao

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

lbenaglia Profilo | Guru

>id - codclie - dataArrivo - DataPartenza
>1 10 25-09-2008 26-09-2008
>2 10 25-09-2008 NULL
>3 10 25-09-2008 NULL
>4 10 25-09-2008 NULL
>5 10 25-09-2008 NULL
>6 10 26-09-2008 NULL
>7 10 26-09-2008 NULL
>8 10 26-09-2008 NULL
>
>allora se io eseguo un count del genere avrò:
>
>Select count(*) from movimenti where codclie=4 and datapartenza
>is null
>
>result: 7

Ma che dici? Non esiste nemmeno 1 sola riga con codclie=4!!
Fabio, non hai ancora capito che non abbiamo poteri telepatici, quindi se non ci fornisci un esempio FUNZIONANTE CON I COMANDI SQL CORRETTI non saremo in grado di aiutarti.

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

trinity Profilo | Guru

nel digitare mi sono confuso nello scrivere il codclie cmq ho risolto.
Grazie
Cirillo Fabio
www.wondernet.biz
fabio@wondernet.biz
http://blogs.dotnethell.it/fabiocirillo/
http://wnetsoftware.blogspot.com
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-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5