SQL query per eliminare valori uguali dal risultato

lunedì 06 luglio 2009 - 21.16

ravalon Profilo | Expert

Salve a tutti

Ho bisogno di estrarre dei codici prodotto ma vorrei che se da questa query risultano doppioni dello stesso codice, vengano eliminati dal risultato...

ho usato questa query per ora


SELECT Prodotti.id,Prodotti.Prodotto FROM Prodotti,Fornitori WHERE Prodotti.CodSettore='MICROB' AND Prodotti.CodFornitore = Fornitori.id AND Prodotti.id IN (22,28,32) ORDER BY Prodotti.Prodotto ASC

mi ritorna dei valori corretti del tipo...

colonna Id
28
32
22
41
32

come vedete c'è due volte il codice 32.... vorrei che in questo caso, quando ci sono doppioni, venissero TUTTI eliminati...cioè il 32 DEVE SPARIRE...

come posso fare ?

R3GM4ST3R Profilo | Junior Member

Ciao!
Prova a raggruppare per prodotto "GROUP BY PRODOTTI.PRODOTTO"!




Tutti sanno che una cosa è impossibile da realizzare, finché arriva uno sprovveduto che non lo sa e la inventa. (Albert Einstein)

ravalon Profilo | Expert

Ma in quel modo mi viene fuori una sola volta....io voglio invece che se è presente più di un record con quell'id non venga proprio estratto !

Sto risolvendo con le funzioni degli array, dove avevo memorizzato gli id estratti...però se ci fosse una query secca non sarebbe male...

alexmed Profilo | Guru

Ciao

SELECT DISTINCT Prodotti.id,Prodotti.Prodotto FROM Prodotti

???

Ciao

alexmed

R3GM4ST3R Profilo | Junior Member

Credo che nemmeno il distinct vada bene, xkè prende solo i valori che sono diversi (ma se ho 2 id uguali, almeno uno me lo visualizza)
Quindi mi sa che devi fare due query una dentro l'altra, una roba del tipo,
SELECT * FROM TABELLA WHERE ID NOT IN (SELECT DISTINCT ID FROM TABELLA)
il tutto raggruppato per ID
Però anche così non va bene, perchè se c'è un valore unico, la distinct te lo prende dentro comunque, di conseguenza non ti visualizza nemmeno quelli "unici"...

Non capisco che utilità può avere non visualizzare nemmeno un prodotto, qual'ora ce ne fossero due uguali...

Mi illumini?


Tutti sanno che una cosa è impossibile da realizzare, finché arriva uno sprovveduto che non lo sa e la inventa. (Albert Einstein)

ravalon Profilo | Expert

Credo di avere la soluzione....la posto appena sono certo che funzioni....

La necessità ve la spiego velocemente .... parliamo di scorte magazzino...

Posso avere N record dello stesso prodotto con giacenze diverse....

Punto ad estrarre quei prodotti che hanno giacenze <= alla soglia minima di giacenza, perchè in questo caso ho una sorta di allarme e il programma mi avverte che è bene ordinarli....

Utilizzando una clausola HAVING e facendo la somma del campo GIACENZA riesco a fare quello che voglio....ossia ad estrarre un determinato prodotto, seppure presente su più record, solo quando la somma di tutte le giacenze di quel prodotto rimane <= alla soglia minima del prodotto, che è sempre la solita...

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