Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   MS SQL Server (https://www.clubdelphi.com/foros/forumdisplay.php?f=23)
-   -   Consulta SQL con MS SQL Server (https://www.clubdelphi.com/foros/showthread.php?t=77805)

cmfab 27-02-2012 16:03:11

Consulta SQL con MS SQL Server
 
Hola a todos, resulta que tengo una tabla en un servidor MS SQL Server 2000. la tabla contiene tres campos, por ejemplo campo1 de tipo entero, campo2 de tipo varchar(5) y en un tercer campo campo3 de tipo Decimal. Resulta que el campo2 contiene datos que pueden duplicarse (por ejemplo un texto determinado: 'Mango'). como puedo crear una consulta que me elimine los duplicados de campo 2, pero que me deje un olo registro sin duplicados en cuyo resgistro este el valor maximo de campo1 y el valor maximo de campo2. espero se me haya entendido correctamente. Gracias por sus atenciones

kapcomx 27-02-2012 19:19:45

group by
 
que tal cmfab, mira nunca he utilizado Ms Sql Server pero se me ocurre que para tu consulta tendrias que utilizar el max, min en conjunto con la clausula Group by

Código SQL [-]
 
SELECT campo2, MIN(campo3), MAX(campo3)
FROM tutabla
GROUP BY campo2;

saludos...:cool:

olbeup 27-02-2012 19:25:21

Hola cmfab,

Esto es lo que buscas.
Código SQL [-]
SELECT
    MAX(CAMPO1)
    ,CAMPO2
  FROM TuTabla
  GROUP BY CAMPO2
upsss, se me ha adelantado kapcomx

Un Saludo.

cmfab 27-02-2012 22:48:01

Bueno la seleccion de los datos queda exactamente como lo quieo, lo que no entiendo en la instruccion es porque si pido que sea el maximo de los dos campos hubo que poner la funcion MIN()

Gracias por la respuesta

juanelo 27-02-2012 23:15:15

Que tal,
En realidad la sentencia que necesitas es la que te escribió OLBEUP.
Saludos.

ecfisa 27-02-2012 23:20:35

Hola cmfab.

Cita:

...me deje un olo registro sin duplicados en cuyo resgistro este el valor maximo de campo1 y el valor maximo de campo2.
Supongo que en lugar de campo2 has querido decir campo3, por que no tiene mucha lógica hallar el máximo de 'Mango', 'Pera', 'Coco', etc.

Supongamos que tenemos estos datos:
Código:

CAMPO1        CAMPO2        CAMPO3
1        A        10
2        A        20
3        A        30
4        A        40
5        A        50
6        C        60
7        D        70
8        D        80
9        E        90
10        I        100
11        J        110

De acuerdo a lo que solicitas arriba, y si interpreté bien, entiendo que deseas este resultado:
Código:

CAMPO2        MAXCPO1  MAXCPO3
A        5        50
C        6        60
D        8        80
E        9        90
I        10        100
J        11        110

Entonces creo que la sentencia debería ser:
Código SQL [-]
SELECT CAMPO2, MAX(CAMPO1) AS MAXCPO1, MAX(CAMPO3) AS MAXCPO3
FROM TU_TABLA
GROUP BY CAMPO2

Saludos.

cmfab 28-02-2012 10:33:32

Gracias por todas las respuesta, funciona perfectamente ambas propuestas, un saludo grande a todos


La franja horaria es GMT +2. Ahora son las 15:40:15.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi