Urge consulta SQL

08/02/2008 - 13:32 por Miguel A. | Informe spam
Tengo dudas de como realizar la consulta siguiente:

Tengo los datos:

NumeroCliente Nombre Apellido1 Apellido2 Producto
100 Pepe Garcia Perez A
100 Garcia Perez B
100 Perez C

Como veis, es el mismo cliente pero le falta algunos campos que de momento
no se van a rellenar.
Lo que necesito es que me cuente a ese cliente como si fuera 1, aunque tenga
varios productos ditintos.

He realizado esto:

Select NumeroCliente, MAX(nombre) as Nombre, MAX(Apellido1) AS Apellido1,
MAX(Apellido2) AS Apellido2, MAX(Producto) AS Producto
Where Tabla
Group By NumeroCliente

El resultado que me da es:
100 Perez C

Como puedo hacer para que me coga el que tiene todos los datos???

Gracias.

Preguntas similare

Leer las respuestas

#1 Carlos M. Calvelo
08/02/2008 - 13:47 | Informe spam
Hola Miguel,

On 8 feb, 13:32, "Miguel A."
wrote:
Tengo dudas de como realizar la consulta siguiente:

Tengo los datos:

NumeroCliente Nombre Apellido1 Apellido2 Producto
100   Pepe   Garcia   Perez   A
100              Garcia   Perez   B
100                           Perez   C

Como veis, es el mismo cliente pero le falta algunos campos que de momento
no se van a rellenar.
Lo que necesito es que me cuente a ese cliente como si fuera 1, aunque tenga
varios productos ditintos.

He realizado esto:

Select NumeroCliente, MAX(nombre) as Nombre, MAX(Apellido1) AS Apellido1,
MAX(Apellido2) AS Apellido2, MAX(Producto) AS Producto
Where Tabla
Group By NumeroCliente

El resultado que me da es:
100                           Perez   C

Como puedo hacer para que me coga el que tiene todos los datos???




Pues si cambias la palabra 'Where' por 'From' tendría que darte:
100 Pepe Garcia Perez C

Y tal como lo tienes solo te dará un error.

Saludos,
Carlos
Respuesta Responder a este mensaje
#2 Miguel A.
08/02/2008 - 14:48 | Informe spam
perdon, me equivoque al escribirlo aqui, pero me sigue dando el mismo
resultado.

"Carlos M. Calvelo" escribió en el mensaje
news:
Hola Miguel,

On 8 feb, 13:32, "Miguel A."
wrote:
Tengo dudas de como realizar la consulta siguiente:

Tengo los datos:

NumeroCliente Nombre Apellido1 Apellido2 Producto
100 Pepe Garcia Perez A
100 Garcia Perez B
100 Perez C

Como veis, es el mismo cliente pero le falta algunos campos que de momento
no se van a rellenar.
Lo que necesito es que me cuente a ese cliente como si fuera 1, aunque
tenga
varios productos ditintos.

He realizado esto:

Select NumeroCliente, MAX(nombre) as Nombre, MAX(Apellido1) AS Apellido1,
MAX(Apellido2) AS Apellido2, MAX(Producto) AS Producto
Where Tabla
Group By NumeroCliente

El resultado que me da es:
100 Perez C

Como puedo hacer para que me coga el que tiene todos los datos???




Pues si cambias la palabra 'Where' por 'From' tendría que darte:
100 Pepe Garcia Perez C

Y tal como lo tienes solo te dará un error.

Saludos,
Carlos
Respuesta Responder a este mensaje
#3 Carlos M. Calvelo
08/02/2008 - 16:08 | Informe spam
Hola Miguel,


On 8 feb, 14:48, "Miguel A."
wrote:
perdon, me equivoque al escribirlo aqui, pero me sigue dando el mismo
resultado.




Cosa rara, porque mira esto:

create table Tabla
(
NumeroCliente int not null,
Nombre varchar(20) not null,
Apellido1 varchar(20) not null,
Apellido2 varchar(20) not null,
Producto char(1) not null
)

insert into Tabla values (100, 'Pepe', 'Garcia', 'Perez', 'A ')
insert into Tabla values (100, '', 'Garcia', 'Perez','B')
insert into Tabla values (100, '', '', 'Perez', 'C')

Select NumeroCliente, MAX(nombre) as Nombre, MAX(Apellido1) AS
Apellido1,
MAX(Apellido2) AS Apellido2, MAX(Producto) AS Producto
From Tabla
Group By NumeroCliente

Resultado:
100 Pepe Garcia Perez C

Saludos,
Carlos
Respuesta Responder a este mensaje
#4 Miguel A.
09/02/2008 - 13:50 | Informe spam
Si ejecuto
Select NumeroCliente, MAX(nombre) as Nombre, MAX(Apellido1) AS Apellido1,
MAX(Apellido2) AS Apellido2, MAX(Producto) AS Producto
From Tabla where idcliente0
Group By NumeroCliente

Me da como resultado:
100 Perez C
100 Pepe Garcia Perez C

Es decir, las dos.
No lo entiendo.


"Carlos M. Calvelo" escribió en el mensaje
news:
Hola Miguel,


On 8 feb, 14:48, "Miguel A."
wrote:
perdon, me equivoque al escribirlo aqui, pero me sigue dando el mismo
resultado.




Cosa rara, porque mira esto:

create table Tabla
(
NumeroCliente int not null,
Nombre varchar(20) not null,
Apellido1 varchar(20) not null,
Apellido2 varchar(20) not null,
Producto char(1) not null
)

insert into Tabla values (100, 'Pepe', 'Garcia', 'Perez', 'A ')
insert into Tabla values (100, '', 'Garcia', 'Perez','B')
insert into Tabla values (100, '', '', 'Perez', 'C')

Select NumeroCliente, MAX(nombre) as Nombre, MAX(Apellido1) AS
Apellido1,
MAX(Apellido2) AS Apellido2, MAX(Producto) AS Producto
From Tabla
Group By NumeroCliente

Resultado:
100 Pepe Garcia Perez C

Saludos,
Carlos
Respuesta Responder a este mensaje
#5 Carlos M. Calvelo
09/02/2008 - 18:14 | Informe spam
Hola Miguel,

On 9 feb, 13:50, "Miguel A."
wrote:
Si ejecuto
Select NumeroCliente, MAX(nombre) as Nombre, MAX(Apellido1) AS Apellido1,
MAX(Apellido2) AS Apellido2, MAX(Producto) AS Producto
From Tabla where idcliente0
Group By NumeroCliente

Me da como resultado:
100 Perez C
100 Pepe Garcia Perez C

Es decir, las dos.
No lo entiendo.




No puede ser Miguel. No con la información que nos estás dando.

Pon aquí el CREATE TABLE de tu tabla, los INSERTs que
introducen los datos que tienes en esa tabla y exactamente la
consulta que dá este resultado a partir de esa tabla y esos
datos (como yo he hecho antes). O sea, códico ejecutable.

Se trata de que podamos reproducir 'exactamente' tu situación.
De otra forma no vamos a poder ayudarte. Lo digo también porque
ahora en el where ya veo un 'idcliente = 100' y en el select y
el group by está 'NumeroCliente'.

Saludos,
Carlos
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida