La razón de su primera consulta dio un orden diferente de lo que quería decir ...
- utiliza el campo "GeneratedDate" para crear la cadena de
- A continuación, alias que resultan campo para "GeneratedDate"
- A continuación, ordenado por "GeneratedDate", sin especificar la tabla
- Así que el campo de resultado está siendo utilizado para pedir
la solución simple es mencionado en otras respuestas ...
ORDER BY ProviderProcessGeneratedDate.GenerateDate
al especificar la mesa no hay confusión y se obtiene teh resultados deseados.
[aparte]
Como regla Siempre prefijo de mis campos con [Tabla]. para evitar cualquier ambigüedad Especialmente porque a menudo vuelvo más tarde y agrego una unión, forzando a la ned por el nombre de la tabla.
Además, alias los nombres de las tablas. No a cosas como [a], sino a algo significativo como [Fechas]. Esto acorta la consulta, pero también me permite cambiar la tabla que se utiliza sin tener que cambiar otras referencias a ella en otras partes de la consulta.
[final del lado]
EDIT:
He dejado mi respuesta anterior a través de humillarme. Realmente debería obtener un servidor SQL casero para que pueda probar mi respuesta antes de publicar mi respuesta ... *** Disculpas *
Como dice el comentario, no puede especificar algo en el ORDER BY si no está en el SELECCIONE DISTINCT.
Por lo tanto me gustaría probar GROUP BY lugar ...
SELECT
Convert(DATETIME,CONVERT(Varchar(10), GeneratedDate, 101))
FROM
ProviderProcessGeneratedDate
GROUP BY
GeneratedDate
ORDER BY
GeneratedDate
Esto supone GeneratedDate es de 1: 1 con la fórmula de convertir. Si, por ejemplo, tiene un TIEMPO en sus campos de Fecha Generada, pero su Formato de Fecha en CONVERTIR no; necesita que se deben eliminar el tiempo desde el campo GeneratedDate ...
SELECT
Convert(DATETIME,CONVERT(Varchar(10), DATEADD(DAY, DATEDIFF(DAY, 0, GeneratedDate), 0), 101))
FROM
ProviderProcessGeneratedDate
GROUP BY
DATEADD(DAY, DATEDIFF(DAY, 0, GeneratedDate), 0)
ORDER BY
DATEADD(DAY, DATEDIFF(DAY, 0, GeneratedDate), 0)
El problema es que quiero pedir por algo g además de lo que está en la cláusula Select Select. Entonces no me dejará. SELECT DISTINCT CONVERT (Varchar (10), GeneratedDate, 101) Proporciona este error ... Los elementos ORDER BY deben aparecer en la lista de selección si se ha especificado SELECT DISTINCT. – ctrlShiftBryan
Sí, es por eso que agregué A.GeneratedDate a la cláusula de selección –
, no necesita estar en la cláusula de selección, solo necesita ser imparcial acerca de qué ordenar. (Usaste el prefijo "A." en la cláusula ORDER BY, pero el interrogador no ...) – MatBailie