2014-03-20 12 views
0

У меня есть запрос, как:ORDER BY с отчетливым В SQL

SELECT DISTINCT Format(partycaseassociatedparty.assigneddate, 'MM/dd/yyyy') AS [*Assigned Date], 
       Format(partycaseassociatedparty.releaseddate, 'MM/dd/yyyy') AS [*Released Date] 
FROM dbo.partycaseassociatedparty AS PartyCaseAssociatedParty 
WHERE partycaseassociatedparty.programid = 1 
ORDER BY [*assigned date] DESC 

Здесь [* Назначенный дата] в ММ/ДД/ГГГГ так при сортировке (заказ по) будет сортировать на основе/дд ММ/yyyy, но мне нужно сортировать на основе yyyy/MM/dd. Как достичь этого здесь?

+1

Order BY PartyCaseAssociatedParty.AssignedDate – giammin

+1

Это похоже на запрос MS Access или SQL Server. Почему он помечен как «mysql»? –

+0

показывает ошибку, как «ORDER BY items должны появляться в списке выбора, если указан параметр SELECT DISTINCT». –

ответ

0
ORDER BY FORMAT(PartyCaseAssociatedParty.AssignedDate,'yyyy/MM/dd') DESC 
+0

показывает ошибку, как «ORDER BY items должны появляться в списке выбора, если указан параметр SELECT DISTINCT». –

0

Вместо использования distinct используйте group by:

SELECT Format(pcap.assigneddate, 'MM/dd/yyyy') AS [*Assigned Date], 
     Format(pcap.releaseddate, 'MM/dd/yyyy') AS [*Released Date] 
FROM dbo.partycaseassociatedparty AS pcap 
WHERE pcap.programid = 1 
GROUP BY Format(pcap.assigneddate, 'MM/dd/yyyy'), Format(pcap.releaseddate, 'MM/dd/yyyy') 
ORDER BY max(pcap.assigneddate) DESC; 

При использовании group by, вы можете использовать функцию агрегации в пункте order by.

+0

В запросе требуется DISTINCT. –

+0

@ Saritha.S.R. , , «Группа by» делает то же самое. –

+0

Правильно, но я генерирую запрос автоматически, так что придет отличное. Есть ли способ сделать то же самое с отдельными? –

Смежные вопросы