me la gano esta consulta alguien que me ayude

15/02/2005 - 19:49 por Daniel Sepulveda | Informe spam
hola amigos

mi problema es lo siguiente

Tabla A
Cod | descripc
11 xxxxx
12 xxxsdasf
13 asd
14 sdsd
15 sdasdsa

Tabla B
ID |Cod |descrip2
1 11 kdfhdfdssdf
2 11 sd1sadf21s
3 11 5s4sadfdassa
4 11 sdfsdafs
5 12 efjfkjsd
6 12 werwerw
7 13 kjekjdf
8 13 dsfsdf

lo que necesito es obtener la cantidad de Cod agrupados en esta relacion en
la Tabla B ( en el ejemplo se cuenta 3) pero al hacer la vista cuenta la
cantidad de veces que se repire Cod en Tabla B y no es eso lo que quiero.

esto es lo que yo tengo y esta mal

SELECT TOP 100 PERCENT COUNT(TablaA.Cod) AS Expr1
FROM dbo.TablaA RIGHT OUTER JOIN
dbo.TABLAB ON dbo.TablaA.Cod = dbo.TablaB.Cod
GROUP BY dbo.TablaA.Cod, dbo.TablaB.Cod

resultado:
Expr1
4
2
2

y necesito contar estos resultados osea 3 como deberia hacer el SQl

Espero ser lo suficiente mente claro
gracias
 

Leer las respuestas

#1 Alejandro Mesa
15/02/2005 - 20:16 | Informe spam
Daniel,

Si quieres contar cuantos "Cod" an tablaA tiene entrada en tablaB, entonces:

select count(*)
from tablaA
where exists (select * from tableB where tableB.Cod = tablaA.Cod)


select count(distinct tableA.Cod)
from tablaA inner join tableB on tablaA.Cod = tableB.Cod


Si quieres contar cuantos "Cod" en tablaA tienen mas de un "Cod" en tablaB,
entonces:

SELECT COUNT(*)
from
(
select 1
FROM dbo.TablaA inner JOIN dbo.TABLAB
ON dbo.TablaA.Cod = dbo.TablaB.Cod
group by dbo.TablaA.Cod
having count(*) > 1
) as t(colA)


AMB


"Daniel Sepulveda" wrote:

hola amigos

mi problema es lo siguiente

Tabla A
Cod | descripc
11 xxxxx
12 xxxsdasf
13 asd
14 sdsd
15 sdasdsa

Tabla B
ID |Cod |descrip2
1 11 kdfhdfdssdf
2 11 sd1sadf21s
3 11 5s4sadfdassa
4 11 sdfsdafs
5 12 efjfkjsd
6 12 werwerw
7 13 kjekjdf
8 13 dsfsdf

lo que necesito es obtener la cantidad de Cod agrupados en esta relacion en
la Tabla B ( en el ejemplo se cuenta 3) pero al hacer la vista cuenta la
cantidad de veces que se repire Cod en Tabla B y no es eso lo que quiero.

esto es lo que yo tengo y esta mal

SELECT TOP 100 PERCENT COUNT(TablaA.Cod) AS Expr1
FROM dbo.TablaA RIGHT OUTER JOIN
dbo.TABLAB ON dbo.TablaA.Cod = dbo.TablaB.Cod
GROUP BY dbo.TablaA.Cod, dbo.TablaB.Cod

resultado:
Expr1
4
2
2

y necesito contar estos resultados osea 3 como deberia hacer el SQl

Espero ser lo suficiente mente claro
gracias






Preguntas similares