查询显示不正确的顺序

时间:2018-12-05 04:40:34

标签: sql sql-server

所需的输出作为图像附加。我当前拥有的代码正确显示了“到达日期”和“出发日期”,但是显示的“来宾姓名”与图片不完全相同。图像以随机顺序显示名字,而姓氏顺序正确。

SELECT UPPER(substring(GLASTNAME,1,1)) + LOWER(SUBSTRING(GLASTNAME,2,len(GLASTNAME)-1)) + ', '+ 
        UPPER(substring(GFIRSTNAME,1,1)) + LOWER(SUBSTRING(GFIRSTNAME,2,len(GFIRSTNAME)-1)) AS Guest,

        FORMAT(ARRIVAL_DATE, 'dddd MM/dd/yy') AS [Arrival Date],
        FORMAT(DateADD(d,NUMDAYS, ARRIVAL_DATE),'dddd MM/dd/yy') AS [Departure Date]
FROM guestWH g INNER JOIN reservationWH r ON g.RNUM = r.RNUM
    INNER JOIN packageWH p ON r.P_ID = p.P_ID 
WHERE NUMDAYS = 5 OR NUMDAYS = 6 OR NUMDAYS = 7
ORDER BY [Arrival Date] ASC

Correct answer

我当前的输出如下:https://imgur.com/i3wqvQM

1 个答案:

答案 0 :(得分:1)

您需要按宾客顺序订购,然后按[到达日期]订购-因此您可以使用1 which means it will order by first column which is guestname in your case and then [Arrival Date]

在下面尝试
SELECT UPPER(substring(GLASTNAME,1,1)) + LOWER(SUBSTRING(GLASTNAME,2,len(GLASTNAME)-1)) + ', '+ 
        UPPER(substring(GFIRSTNAME,1,1)) + LOWER(SUBSTRING(GFIRSTNAME,2,len(GFIRSTNAME)-1)) AS Guest,

        FORMAT(ARRIVAL_DATE, 'dddd MM/dd/yy') AS [Arrival Date],
        FORMAT(DateADD(d,NUMDAYS, ARRIVAL_DATE),'dddd MM/dd/yy') AS [Departure Date]
FROM guestWH g INNER JOIN reservationWH r ON g.RNUM = r.RNUM
    INNER JOIN packageWH p ON r.P_ID = p.P_ID 
WHERE NUMDAYS = 5 OR NUMDAYS = 6 OR NUMDAYS = 7
ORDER BY 1, [Arrival Date] ASC