Linq query

domenica 12 settembre 2010 - 16.24

blackspidy14 Profilo | Junior Member

ciao a tutti, ho un piccolo problema con una applicazione in vb.net dovrei eseguire una query su una tabella sql05 che estragga tutti i valori con lo stesso valore. Cioè tutte le tuble che presentano un campo con un valore uguale.

spero di essere stato chiaro.

alx_81 Profilo | Guru

>ciao a tutti,
ciao
>ho un piccolo problema con una applicazione in
>vb.net dovrei eseguire una query su una tabella sql05 che estragga
>tutti i valori con lo stesso valore. Cioè tutte le tuble che
>presentano un campo con un valore uguale.
potresti farmi l'esempio di tabella che vuoi gestire e le righe di esempio?
Poi l'elenco delle righe che vorresti estrarre, perchè non mi è chiaro cosa intendi con "tutti i valori con lo stesso valore"


--
Alessandro Alpi | SQL Server MVP
MCP|MCITP|MCTS|MCT

http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi

blackspidy14 Profilo | Junior Member

id_cliente n°_fattura prezzo quantità totale
1 100 4 5 20
1 100 3 2 6
1 110 2 2 4
2 120 2 4 8

io vorrei estrarre dalla tabella tutte le tuple che hanno lo stesso numero ID e lo stesso numero fatture

es: la fattura del cliente 1 n°100

vorrei vedere solo le 2 righe

per ora tramite una semplice query estraggo tutti i clienti con id = ad una textbox contenente l'id_cliete ma il numero fatture vorrei che fosse ragruppato in automatico.

spero di essere più chiaro

kataklisma Profilo | Senior Member

Ciao!

>id_cliente n°_fattura prezzo quantità totale
>1 100 4 5
>20
>1 100 3 2
>6
>1 110 2 2
>4
>2 120 2 4
>8
>
>io vorrei estrarre dalla tabella tutte le tuple che hanno lo
>stesso numero ID e lo stesso numero fatture
>
>es: la fattura del cliente 1 n°100
>
>vorrei vedere solo le 2 righe
>
>per ora tramite una semplice query estraggo tutti i clienti con
>id = ad una textbox contenente l'id_cliete ma il numero fatture
>vorrei che fosse ragruppato in automatico.

Sinceramente non capisco cosa intendi, hai fatto l'esempio del cliente numero 1, fattura n 100, dici di voler vedere solo le due righe ma poi parli di aggregazione!??

Comunque sia, in questo modo ottieni tutte le righe di un cliente senza duplicare le fatture con numero uguale :
Devi utilizzare una semplice groupby :

SELECT id_Cliente,n_fattura FROM TuaTabella WHERE Id_Cliente = '1' GROUP BY id_Cliente,n_fattura

Risultato :

id_cliente n°_fattura 1 100 1 110


Anche se devo dirti che tutto ciò non ha alcuna logica, non possono coesistere due fatture con uno stesso numero.

Se invece vuoi ottenere tutte le fatture con uno stesso numero di un dato cliente, basta aggiungere una condizione nella clausola where :

SELECT id_Cliente,n_fattura etc... FROM TuaTabella WHERE Id_Cliente = '1' AND n_fattura = '100'

Spero di averti dato risposta altrimenti prova a spiegarti meglio, la soluzione si trova ;)
------------------------------------------
Ignazio Catanzaro

http://blogs.dotnethell.it/swdev/

blackspidy14 Profilo | Junior Member

SELECT id_Cliente,n_fattura etc...
FROM TuaTabella
WHERE Id_Cliente = '1' AND n_fattura = '100'

non ho modo di sapere in anticipo il numero '100' ^^^ quindi la query anche se corretta non è utile nel mio caso, tanto meno il groupBy (opzioni già valutate e provate) Quindi mi chiedevo se esiste un modo che estragga tutte le righe le quali presentino un campo uguale. si può fare ma non trovo gli appunti dell'università dell'esame su basi di dati.

PS. basta leggere l'esempio per capire cosa mi occore, non capisco perchè kataklisma abbia tutti questi problemi di comprensione :D

kataklisma Profilo | Senior Member

>SELECT id_Cliente,n_fattura etc...
>FROM TuaTabella
>WHERE Id_Cliente = '1' AND n_fattura = '100'
>
>non ho modo di sapere in anticipo il numero '100' ^^^ quindi
>la query anche se corretta non è utile nel mio caso, tanto meno
>il groupBy (opzioni già valutate e provate) Quindi mi chiedevo
>se esiste un modo che estragga tutte le righe le quali presentino
>un campo uguale. si può fare ma non trovo gli appunti dell'università
>dell'esame su basi di dati.

Ora ho capito cosa cerchi, con questa query ottieni le fatture duplicate e nel campo NFatture il loro numero :

SELECT id_Cliente, n_fattura, COUNT(n_fattura) AS NFatture FROM TuaTabella GROUP BY id_Cliente, n_fattura HAVING (COUNT(n_fattura) > 1)

>PS. basta leggere l'esempio per capire cosa mi occore, non capisco
>perchè kataklisma abbia tutti questi problemi di comprensione

Beh lavorando per il management aziendale a livello gestionale (magazzino e contabile) mi viene difficile pensare al caso reale : 2 fatture con lo stesso identificativo non possono esistere!

Ciao!

------------------------------------------
Ignazio Catanzaro

http://blogs.dotnethell.it/swdev/
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