![]() |
| |||
| Tengo una tabla que tiene basicamente los siguientes campos IdEvento FechaEvento NombreEvento Necesito mostrar 10 registros de esa tabla (eso se hace con Top). El problema esta en el orden. Necesito mostrar todos los eventos a producirse mas recientemente es decir WHERE FECHA >= GETDATE() ORDER BY FechaEvento ASC. Pero si no hay suficientes registros necesito añadir al final los eventos que se han producido mas recientemente WHERE FECHA < GETDATE() ORDER BY FechaEvento DESC Como puedo plasmar un Select así? Gracias de antemano |
| | ||||
| ||||
| |
| |||
| Hola Seguramente hay algo mas optimo, pero puedes probar haciendo: select * from ( select top 10 IdEvento,FechaEvento,NombreEvento from miTabla where WHERE FECHA >= GETDATE() ORDER BY FechaEvento ASC UNION select top 10 IdEvento,FechaEvento,NombreEvento from miTabla where WHERE FECHA < GETDATE() ORDER BY FechaEvento Desc ) tablita Order BY FechaEvento ASC Solo debes reemplazar miTabla por el nombre real de la tabla. Tablita es un nombre necesario para manejar el select desde la union. Saludos -- Daniel A. Calvin MCP "Jose Gregorio Alvarez Regalado" wrote: > Tengo una tabla que tiene basicamente los siguientes campos > > IdEvento > FechaEvento > NombreEvento > > Necesito mostrar 10 registros de esa tabla (eso se hace con Top). > El problema esta en el orden. > Necesito mostrar todos los eventos a producirse mas recientemente es decir > > WHERE FECHA >= GETDATE() ORDER BY FechaEvento ASC. > > Pero si no hay suficientes registros necesito añadir al final los eventos > que se han producido mas recientemente > > WHERE FECHA < GETDATE() ORDER BY FechaEvento DESC > > Como puedo plasmar un Select asÃ***? > > > Gracias de antemano > > > > > |
| |||
| Hola Seguramente hay algo mas optimo, pero puedes probar haciendo: select * from ( select top 10 IdEvento,FechaEvento,NombreEvento from miTabla where WHERE FECHA >= GETDATE() ORDER BY FechaEvento ASC UNION select top 10 IdEvento,FechaEvento,NombreEvento from miTabla where WHERE FECHA < GETDATE() ORDER BY FechaEvento Desc ) tablita Order BY FechaEvento ASC Solo debes reemplazar miTabla por el nombre real de la tabla. Tablita es un nombre necesario para manejar el select desde la union. Saludos -- Daniel A. Calvin MCP "Jose Gregorio Alvarez Regalado" wrote: > Tengo una tabla que tiene basicamente los siguientes campos > > IdEvento > FechaEvento > NombreEvento > > Necesito mostrar 10 registros de esa tabla (eso se hace con Top). > El problema esta en el orden. > Necesito mostrar todos los eventos a producirse mas recientemente es decir > > WHERE FECHA >= GETDATE() ORDER BY FechaEvento ASC. > > Pero si no hay suficientes registros necesito añadir al final los eventos > que se han producido mas recientemente > > WHERE FECHA < GETDATE() ORDER BY FechaEvento DESC > > Como puedo plasmar un Select asÃ***? > > > Gracias de antemano > > > > > |
| |||
| Hola Seguramente hay algo mas optimo, pero puedes probar haciendo: select * from ( select top 10 IdEvento,FechaEvento,NombreEvento from miTabla where WHERE FECHA >= GETDATE() ORDER BY FechaEvento ASC UNION select top 10 IdEvento,FechaEvento,NombreEvento from miTabla where WHERE FECHA < GETDATE() ORDER BY FechaEvento Desc ) tablita Order BY FechaEvento ASC Solo debes reemplazar miTabla por el nombre real de la tabla. Tablita es un nombre necesario para manejar el select desde la union. Saludos -- Daniel A. Calvin MCP "Jose Gregorio Alvarez Regalado" wrote: > Tengo una tabla que tiene basicamente los siguientes campos > > IdEvento > FechaEvento > NombreEvento > > Necesito mostrar 10 registros de esa tabla (eso se hace con Top). > El problema esta en el orden. > Necesito mostrar todos los eventos a producirse mas recientemente es decir > > WHERE FECHA >= GETDATE() ORDER BY FechaEvento ASC. > > Pero si no hay suficientes registros necesito añadir al final los eventos > que se han producido mas recientemente > > WHERE FECHA < GETDATE() ORDER BY FechaEvento DESC > > Como puedo plasmar un Select asÃ***? > > > Gracias de antemano > > > > > |
| |||
| Hola Seguramente hay algo mas optimo, pero puedes probar haciendo: select * from ( select top 10 IdEvento,FechaEvento,NombreEvento from miTabla where WHERE FECHA >= GETDATE() ORDER BY FechaEvento ASC UNION select top 10 IdEvento,FechaEvento,NombreEvento from miTabla where WHERE FECHA < GETDATE() ORDER BY FechaEvento Desc ) tablita Order BY FechaEvento ASC Solo debes reemplazar miTabla por el nombre real de la tabla. Tablita es un nombre necesario para manejar el select desde la union. Saludos -- Daniel A. Calvin MCP "Jose Gregorio Alvarez Regalado" wrote: > Tengo una tabla que tiene basicamente los siguientes campos > > IdEvento > FechaEvento > NombreEvento > > Necesito mostrar 10 registros de esa tabla (eso se hace con Top). > El problema esta en el orden. > Necesito mostrar todos los eventos a producirse mas recientemente es decir > > WHERE FECHA >= GETDATE() ORDER BY FechaEvento ASC. > > Pero si no hay suficientes registros necesito añadir al final los eventos > que se han producido mas recientemente > > WHERE FECHA < GETDATE() ORDER BY FechaEvento DESC > > Como puedo plasmar un Select asÃ***? > > > Gracias de antemano > > > > > |
| |||
| Hola Seguramente hay algo mas optimo, pero puedes probar haciendo: select * from ( select top 10 IdEvento,FechaEvento,NombreEvento from miTabla where WHERE FECHA >= GETDATE() ORDER BY FechaEvento ASC UNION select top 10 IdEvento,FechaEvento,NombreEvento from miTabla where WHERE FECHA < GETDATE() ORDER BY FechaEvento Desc ) tablita Order BY FechaEvento ASC Solo debes reemplazar miTabla por el nombre real de la tabla. Tablita es un nombre necesario para manejar el select desde la union. Saludos -- Daniel A. Calvin MCP "Jose Gregorio Alvarez Regalado" wrote: > Tengo una tabla que tiene basicamente los siguientes campos > > IdEvento > FechaEvento > NombreEvento > > Necesito mostrar 10 registros de esa tabla (eso se hace con Top). > El problema esta en el orden. > Necesito mostrar todos los eventos a producirse mas recientemente es decir > > WHERE FECHA >= GETDATE() ORDER BY FechaEvento ASC. > > Pero si no hay suficientes registros necesito añadir al final los eventos > que se han producido mas recientemente > > WHERE FECHA < GETDATE() ORDER BY FechaEvento DESC > > Como puedo plasmar un Select asÃ***? > > > Gracias de antemano > > > > > |
| |||
| Hola Seguramente hay algo mas optimo, pero puedes probar haciendo: select * from ( select top 10 IdEvento,FechaEvento,NombreEvento from miTabla where WHERE FECHA >= GETDATE() ORDER BY FechaEvento ASC UNION select top 10 IdEvento,FechaEvento,NombreEvento from miTabla where WHERE FECHA < GETDATE() ORDER BY FechaEvento Desc ) tablita Order BY FechaEvento ASC Solo debes reemplazar miTabla por el nombre real de la tabla. Tablita es un nombre necesario para manejar el select desde la union. Saludos -- Daniel A. Calvin MCP "Jose Gregorio Alvarez Regalado" wrote: > Tengo una tabla que tiene basicamente los siguientes campos > > IdEvento > FechaEvento > NombreEvento > > Necesito mostrar 10 registros de esa tabla (eso se hace con Top). > El problema esta en el orden. > Necesito mostrar todos los eventos a producirse mas recientemente es decir > > WHERE FECHA >= GETDATE() ORDER BY FechaEvento ASC. > > Pero si no hay suficientes registros necesito añadir al final los eventos > que se han producido mas recientemente > > WHERE FECHA < GETDATE() ORDER BY FechaEvento DESC > > Como puedo plasmar un Select asÃ***? > > > Gracias de antemano > > > > > |
| |||
| Falto un top 10 en el primer select. Es asi en realidad: select TOP 10 * from ( select top 10 IdEvento,FechaEvento,NombreEvento from miTabla WHERE FECHA >= GETDATE() ORDER BY FechaEvento ASC UNION select top 10 IdEvento,FechaEvento,NombreEvento from miTabla WHERE FECHA < GETDATE() ORDER BY FechaEvento Desc ) tablita Order BY FechaEvento ASC -- Daniel A. Calvin MCP "Daniel A. Calvin" wrote: > Hola > > Seguramente hay algo mas optimo, pero puedes probar haciendo: > > select * from > ( select top 10 IdEvento,FechaEvento,NombreEvento from miTabla where WHERE > FECHA >= GETDATE() ORDER BY FechaEvento ASC > UNION > select top 10 IdEvento,FechaEvento,NombreEvento from miTabla where WHERE > FECHA < GETDATE() ORDER BY FechaEvento Desc > > ) tablita Order BY FechaEvento ASC > > Solo debes reemplazar miTabla por el nombre real de la tabla. > Tablita es un nombre necesario para manejar el select desde la union. > > Saludos > > -- > Daniel A. Calvin > MCP > > > "Jose Gregorio Alvarez Regalado" wrote: > > > Tengo una tabla que tiene basicamente los siguientes campos > > > > IdEvento > > FechaEvento > > NombreEvento > > > > Necesito mostrar 10 registros de esa tabla (eso se hace con Top). > > El problema esta en el orden. > > Necesito mostrar todos los eventos a producirse mas recientemente es decir > > > > WHERE FECHA >= GETDATE() ORDER BY FechaEvento ASC. > > > > Pero si no hay suficientes registros necesito añadir al final los eventos > > que se han producido mas recientemente > > > > WHERE FECHA < GETDATE() ORDER BY FechaEvento DESC > > > > Como puedo plasmar un Select asÃ***? > > > > > > Gracias de antemano > > > > > > > > > > |
| |
| |
| |||
| Falto un top 10 en el primer select. Es asi en realidad: select TOP 10 * from ( select top 10 IdEvento,FechaEvento,NombreEvento from miTabla WHERE FECHA >= GETDATE() ORDER BY FechaEvento ASC UNION select top 10 IdEvento,FechaEvento,NombreEvento from miTabla WHERE FECHA < GETDATE() ORDER BY FechaEvento Desc ) tablita Order BY FechaEvento ASC -- Daniel A. Calvin MCP "Daniel A. Calvin" wrote: > Hola > > Seguramente hay algo mas optimo, pero puedes probar haciendo: > > select * from > ( select top 10 IdEvento,FechaEvento,NombreEvento from miTabla where WHERE > FECHA >= GETDATE() ORDER BY FechaEvento ASC > UNION > select top 10 IdEvento,FechaEvento,NombreEvento from miTabla where WHERE > FECHA < GETDATE() ORDER BY FechaEvento Desc > > ) tablita Order BY FechaEvento ASC > > Solo debes reemplazar miTabla por el nombre real de la tabla. > Tablita es un nombre necesario para manejar el select desde la union. > > Saludos > > -- > Daniel A. Calvin > MCP > > > "Jose Gregorio Alvarez Regalado" wrote: > > > Tengo una tabla que tiene basicamente los siguientes campos > > > > IdEvento > > FechaEvento > > NombreEvento > > > > Necesito mostrar 10 registros de esa tabla (eso se hace con Top). > > El problema esta en el orden. > > Necesito mostrar todos los eventos a producirse mas recientemente es decir > > > > WHERE FECHA >= GETDATE() ORDER BY FechaEvento ASC. > > > > Pero si no hay suficientes registros necesito añadir al final los eventos > > que se han producido mas recientemente > > > > WHERE FECHA < GETDATE() ORDER BY FechaEvento DESC > > > > Como puedo plasmar un Select asÃ***? > > > > > > Gracias de antemano > > > > > > > > > > |
| |||
| Falto un top 10 en el primer select. Es asi en realidad: select TOP 10 * from ( select top 10 IdEvento,FechaEvento,NombreEvento from miTabla WHERE FECHA >= GETDATE() ORDER BY FechaEvento ASC UNION select top 10 IdEvento,FechaEvento,NombreEvento from miTabla WHERE FECHA < GETDATE() ORDER BY FechaEvento Desc ) tablita Order BY FechaEvento ASC -- Daniel A. Calvin MCP "Daniel A. Calvin" wrote: > Hola > > Seguramente hay algo mas optimo, pero puedes probar haciendo: > > select * from > ( select top 10 IdEvento,FechaEvento,NombreEvento from miTabla where WHERE > FECHA >= GETDATE() ORDER BY FechaEvento ASC > UNION > select top 10 IdEvento,FechaEvento,NombreEvento from miTabla where WHERE > FECHA < GETDATE() ORDER BY FechaEvento Desc > > ) tablita Order BY FechaEvento ASC > > Solo debes reemplazar miTabla por el nombre real de la tabla. > Tablita es un nombre necesario para manejar el select desde la union. > > Saludos > > -- > Daniel A. Calvin > MCP > > > "Jose Gregorio Alvarez Regalado" wrote: > > > Tengo una tabla que tiene basicamente los siguientes campos > > > > IdEvento > > FechaEvento > > NombreEvento > > > > Necesito mostrar 10 registros de esa tabla (eso se hace con Top). > > El problema esta en el orden. > > Necesito mostrar todos los eventos a producirse mas recientemente es decir > > > > WHERE FECHA >= GETDATE() ORDER BY FechaEvento ASC. > > > > Pero si no hay suficientes registros necesito añadir al final los eventos > > que se han producido mas recientemente > > > > WHERE FECHA < GETDATE() ORDER BY FechaEvento DESC > > > > Como puedo plasmar un Select asÃ***? > > > > > > Gracias de antemano > > > > > > > > > > |
![]() |
| Herramientas | |
| Desplegado | |
| |
Temas Similares | ||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| BCP y SELECT | Cristian Meneses | Newsgroup microsoft.public.es.sqlserver | 3 | 13-06-2008 11:15:50 |
| select | Alf Sebastian | Newsgroup microsoft.public.es.sqlserver | 3 | 10-03-2008 13:12:02 |
| Select - SQL | eandrade.ibva@gmail.com | Newsgroup microsoft.public.es.vfoxpro.datos | 20 | 29-10-2007 14:18:02 |
| SELECT MAX | JReyes | Newsgroup microsoft.public.es.dotnet.ado | 6 | 25-04-2006 11:44:02 |
| XML y XSLT: cargar select en función de otro select | Chino | Newsgroup microsoft.public.es.xml | 0 | 20-12-2004 13:48:21 |