Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > MS SQL Server
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 16-11-2005
Avatar de Cabanyaler
Cabanyaler Cabanyaler is offline
Miembro
 
Registrado: jun 2003
Ubicación: País Valencià
Posts: 339
Poder: 24
Cabanyaler Va por buen camino
Gracias por vuestra ayuda.

Cita:
Si aplicas algún que otro max a tu consulta seguramente te de el resultado deseado.
Voy a probar lo del max.

Cita:
No entiendo entonces los LEFT OUTER JOIN a las tablas de clientes y comerciales.
Porque la consulta está resumida, y también necesito consultar o filtrar por campos de estas tablas relacionadas con la maestra CONTRATOS.

Cita:
Hasta en los comentarios vaís a meternos el catalán?
Es un Copy/Paste de mi código, por eso están en mi lengua.

Ah!!, y suerte para todos, pero al final ganará el mejor, y mientras disfrutad del espectáculo.
__________________
El meu país és tan petit, que des de dalt d'un campanar es pot veure el campanar veí.
Responder Con Cita
  #2  
Antiguo 16-11-2005
Nelet Nelet is offline
Miembro
 
Registrado: may 2003
Ubicación: Picassent - Valencia
Posts: 95
Poder: 24
Nelet Va por buen camino
Y si pruebas con subconsultas?

Mas lento pero mas fácil
__________________
_____________________________________
And follow me to where the real fun is
Responder Con Cita
  #3  
Antiguo 16-11-2005
Avatar de Cabanyaler
Cabanyaler Cabanyaler is offline
Miembro
 
Registrado: jun 2003
Ubicación: País Valencià
Posts: 339
Poder: 24
Cabanyaler Va por buen camino
Con subconsultas, si, pero es que tengo alrededor de 50 Store procedures que debería reescribirlos todos, por lo que soy capaz de inventar algo.

Por otro lado, como pongo el MAX en esta consulta??, ya que me da error de sintaxis si hago esto
Código SQL [-]
SELECT 
   MAX(Contratos.CodAut_Con),Contratos.*
FROM
   Contratos......

Muchas gracias.
__________________
El meu país és tan petit, que des de dalt d'un campanar es pot veure el campanar veí.
Responder Con Cita
  #4  
Antiguo 16-11-2005
Nelet Nelet is offline
Miembro
 
Registrado: may 2003
Ubicación: Picassent - Valencia
Posts: 95
Poder: 24
Nelet Va por buen camino
Para poner el max de un campo debes agrupar por todos los demás campos que queden fuera del agregado. Por ejemplo si para la misma combinación de CAMPO1...CAMPON tienes un CAMPOX y quieres saber el máximo, quedaría así:

Código SQL [-]
SELECT CAMPO1, CAMPO2, ...CAMPON, MAX(CAMPOX)
FROM TABLA
WHERE ......BLABLABLA
GROUP BY CAMPO1, CAMPO2,....CAMPON

Por lo que veo de tu procedimiento.....creo que es bastante dificil implementarlo con agregados. Te sigo recomendando las subconsultas.
__________________
_____________________________________
And follow me to where the real fun is
Responder Con Cita
  #5  
Antiguo 16-11-2005
Avatar de Emilio
*Emilio* Emilio is offline
Capo
 
Registrado: may 2003
Ubicación: Palma de Mallorca
Posts: 2.639
Poder: 10
Emilio Va por buen camino
Cita:
Empezado por Cabanyaler
Por otro lado, como pongo el MAX en esta consulta??, ya que me da error de sintaxis si hago esto
Código SQL [-]
SELECT 
MAX(Contratos.CodAut_Con),Contratos.*
FROM
Contratos......
Lógico, en la select o le dices campo a campo los que quieres o le pones un asterisco para todos, pero nunca ambas cosas.

Por otra parte decir que hacer uso de max, no te obliga hacer un group by por lo menos en DB2 que es la que yo uso, bueno sería que nos dijeses también el motor que estás usando.

En este hilo por lo visto hay uno de cada equipo, en cualquier caso el sábado seguro que disfrutamos todos.
__________________
Saludos
Emilio
Responder Con Cita
  #6  
Antiguo 16-11-2005
Nelet Nelet is offline
Miembro
 
Registrado: may 2003
Ubicación: Picassent - Valencia
Posts: 95
Poder: 24
Nelet Va por buen camino
Cita:
Empezado por Emilio
Lógico, en la select o le dices campo a campo los que quieres o le pones un asterisco para todos, pero nunca ambas cosas.

Por otra parte decir que hacer uso de max, no te obliga hacer un group by por lo menos en DB2 que es la que yo uso, bueno sería que nos dijeses también el motor que estás usando.

En este hilo por lo visto hay uno de cada equipo, en cualquier caso el sábado seguro que disfrutamos todos.
En SQLServer si puedes poner lo siguiente
Código SQL [-]
SELECT CAMPO1, CAMPO3, * FROM TABLA

Lo digo por curiosidad, como curioso me resulta no tener que poner el cognazo de GROUP BY
__________________
_____________________________________
And follow me to where the real fun is
Responder Con Cita
  #7  
Antiguo 16-11-2005
Avatar de Emilio
*Emilio* Emilio is offline
Capo
 
Registrado: may 2003
Ubicación: Palma de Mallorca
Posts: 2.639
Poder: 10
Emilio Va por buen camino
Cita:
Empezado por Nelet
En SQLServer si puedes poner lo siguiente
Código SQL [-]
SELECT CAMPO1, CAMPO3, * FROM TABLA
Todo un puntazo para SQLServer

Cita:
Lo digo por curiosidad, como curioso me resulta no tener que poner el cognazo de GROUP BY
Pues la verdad es que no soy amante del GROUP BY precisamente tiende a duplicar cuando enlazas varias tablas si no andas con cuidado.

Eso demuestra lo distintos que son los motores y lo mucho que en mi caso (DB2) hecho de menos el LIMIT de MySQL o el ROWS de otros motores, snifff.
__________________
Saludos
Emilio
Responder Con Cita
  #8  
Antiguo 16-11-2005
Avatar de Cabanyaler
Cabanyaler Cabanyaler is offline
Miembro
 
Registrado: jun 2003
Ubicación: País Valencià
Posts: 339
Poder: 24
Cabanyaler Va por buen camino
Thumbs up

Gracias a todos.
Creo que ya lo tengo, lo que ocurre es que debo irme ya, pero mañana acabaré de compilar y arreglar la consulta ya que lleva un campo Memo y no se puede agrupar como sabréis.
Pero me está dando una risa de no poder aguantarme al tener que hacer el GROUP BY por todos los campos.... ufff, y la verdad no es que tenga cuatro.

Al final lo he ehecho así
Código SQL [-]
SELECT CAMPO1, CAMPO2, ...CAMPON, MAX(CAMPOX)
FROM TABLA
WHERE ......BLABLABLA
GROUP BY CAMPO1, CAMPO2,....CAMPON

Mañana comento el resultado.
__________________
El meu país és tan petit, que des de dalt d'un campanar es pot veure el campanar veí.
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 08:12:24.


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