PDA

Visualizza la versione completa : [SQL] Estrazione dati che hanno un determinato campo almeno due volte in tabella


Elena78
29-07-2005, 15:25
Ciao a tutti,
quale comando sql si utilizza per ricercare, all'interno di una tabella, record che hanno un determinato campo
che esiste almeno due volte in tabella???

Es:
Tabella BANCOMAT

estrarre da tale tabella solo i record che hanno campo cliente presente per almeno due volte in tabella.

Risultato: estrazione di tutti clienti che possiedono almeno due bancomat.


Grazie, :ciauz:

Alethesnake
29-07-2005, 17:10
prova a postare la struttura della tabella e i campi che devi estrarre con la select.

Elena78
29-07-2005, 17:37
Originariamente inviato da Alethesnake
prova a postare la struttura della tabella e i campi che devi estrarre con la select.

select cliente, codice_bancomat from bancomat
where ...... condizione dove il cliente presente due volte in tabella.

Devo estrarre tutti i cli che hanno almeno due carte

tonytalk
29-07-2005, 17:46
prova cos



select nome,count(nome) as instance from Bancomat
group by nome
having instance=2

Ciao

Alethesnake
29-07-2005, 17:54
se il codice_bancomat univoco come immagino non mi viene in mente nulla di meglio di questo:


SELECT codice_bancomat, cliente
FROM tabella1 AS t
WHERE (SELECT COUNT(codice_bancomat) FROM tabella1 WHERE cliente=t.cliente)>=2

vedi se pu andare :ciauz:

Elena78
01-08-2005, 11:57
Originariamente inviato da Alethesnake
se il codice_bancomat univoco come immagino non mi viene in mente nulla di meglio di questo:


SELECT codice_bancomat, cliente
FROM tabella1 AS t
WHERE (SELECT COUNT(codice_bancomat) FROM tabella1 WHERE cliente=t.cliente)>=2

vedi se pu andare :ciauz:


Sull'AS :
ORA - 00933 ; sql command not propely ended :bh:

Elena78
01-08-2005, 11:58
Originariamente inviato da tonytalk
prova cos



select nome,count(nome) as instance from Bancomat
group by nome
having instance=2

Ciao


su INSTANCE :
ora- 00904 : invalid column name :(

Alethesnake
01-08-2005, 12:22
Originariamente inviato da Elena78
Sull'AS :
ORA - 00933 ; sql command not propely ended :bh:
non sapevo che stavi lavorando su oracle. togli gli AS:


SELECT codice_bancomat, cliente
FROM tabella1 t
WHERE (SELECT COUNT(codice_bancomat) FROM tabella1 WHERE cliente=t.cliente)>=2

tonytalk
01-08-2005, 13:50
Guarda ho provato questa edovrebbe andare

SELECT descrizione, Count(descrizione) AS ConteggioDidescrizione
FROM AnagraficaCorso
GROUP BY descrizione
HAVING Count(descrizione)=2;

quindi basta correggere l'having

Ciao

Elena78
01-08-2005, 15:28
Originariamente inviato da Alethesnake
non sapevo che stavi lavorando su oracle. togli gli AS:


SELECT codice_bancomat, cliente
FROM tabella1 t
WHERE (SELECT COUNT(codice_bancomat) FROM tabella1 WHERE cliente=t.cliente)>=2

:dh: :gli as no in oracle! :dh: Grazie :ciauz:

Loading