ayuda con una consulta sql

19/11/2008 - 14:05 por arzhur_hotmail.com | Informe spam
hola, estoy dando vueltas al asunto y nada, seguro que es alguna
chorrada, os cuento

tengo una tabla clientes y otra pedidos, entonces lo que quiero es que
cuando liste clientes me muestre cuantos pedidos tiene ese cliente,
ejem:


Id cliente | Nombre | DIreccion | Telefono | Pedidos
01 juan alameda 666882 0
02 pedro gran via 666666 3

No se si me he explicado, total que no doy con la solucion.

Gracias

Preguntas similare

Leer las respuestas

#1 Alejandro Mesa
19/11/2008 - 14:31 | Informe spam
arzhur_hotmail.com,

Trata:

select
id_cliente, nombre, direccion, telefono,
isnull(
(
select count(*)
from dbo.pedidos as b
where b.id_cliente = a.id_cliente
), 0) as pedidos
from
dbo.clientes as a
GO


AMB


"arzhur_hotmail.com" wrote:

hola, estoy dando vueltas al asunto y nada, seguro que es alguna
chorrada, os cuento

tengo una tabla clientes y otra pedidos, entonces lo que quiero es que
cuando liste clientes me muestre cuantos pedidos tiene ese cliente,
ejem:


Id cliente | Nombre | DIreccion | Telefono | Pedidos
01 juan alameda 666882 0
02 pedro gran via 666666 3

No se si me he explicado, total que no doy con la solucion.

Gracias

Respuesta Responder a este mensaje
#2 Francizk0
19/11/2008 - 16:08 | Informe spam
La respuesta anterior es buena, solo q el unico problema seria cuando
pruabes con muchos registros ya q en la respuesta anterior hace un
select COUNT(*) por cada cliente.
Te recomiendo que prueves con este select.

SELECT C.CodCliente , C.DescCliente , COUNT(*) AS Pedido
FROM Cliente C
LEFT JOIN VtaPedidoCab V ON ( C.CodCliente = V.CodCliente )
GROUP BY C.CodCliente , C.DescCliente

Espero te sirva
Respuesta Responder a este mensaje
#3 Francizk0
19/11/2008 - 16:17 | Informe spam
On 19 nov, 10:08, Francizk0 wrote:
La respuesta anterior es buena, solo q el unico problema seria cuando
pruabes con muchos registros ya q en la respuesta anterior hace un
select COUNT(*)  por cada cliente.
Te recomiendo que prueves con este select.

SELECT C.CodCliente , C.DescCliente , COUNT(*) AS Pedido
FROM Cliente C
LEFT JOIN VtaPedidoCab V ON ( C.CodCliente = V.CodCliente )
GROUP BY C.CodCliente , C.DescCliente

Espero te sirva



Fe de Erratas
El select como tal esta bien planteado solo q la consulta correcta
seria :

SELECT C.CodCliente , C.DescCliente , COUNT(V.CodDocumento) AS Pedido
FROM Cliente C
LEFT JOIN VtaPedidoCab V ON ( C.CodCliente = V.CodCliente )
GROUP BY C.CodCliente , C.DescCliente
ORDER BY COUNT(V.CodDocumento)

donde [ V.CodDocumento ] es algun campo de tu tabla pedido Ok
espero esto si te sirva.
Pq la correccion, en el select anterior nunca te vota cero y te vota 1
y q con * cuenta la cantidad de registro de ambas tablas y tu solo
necitas contar los registros de la tabal pedido
Respuesta Responder a este mensaje
#4 arzhur_hotmail.com
19/11/2008 - 19:41 | Informe spam
muchisimas gracias a los 2, gracias por ayudarme.
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida