2016-06-29 15 views
2
SELECT CH.Net_Amount AS Net_Amount, 
     GD.Guest_Name AS Customer_Name, 
     CONVERT(VARCHAR(10),CH.Doc_Date,(120)) AS Doc_Date, 
     LGH.Node_Name AS Location_Name, 
     [booking].[Calculate_Room_Charge] (CH.Booking_Code) AS Roomcharge, 
     (CH.Net_Amount-[booking].[Calculate_Room_Charge] (CH.Booking_Code))AS ServiceCharge 
FROM [booking].[Checkout_Header] AS CH 
LEFT JOIN [booking].[Booking_Header] AS BH 
    ON CH.Booking_Code=BH.Doc_No 
LEFT JOIN [booking].[Booking_Details]AS BD 
    ON BH.Doc_No=BD.Doc_No 
LEFT JOIN [booking].[Guest_Details] AS GD 
    ON BD.Customer_Code=GD.Guest_Code 
LEFT JOIN [dbo].[User_Locations] AS UL 
    ON CH.Setup_Location_Code = UL.Location_Code 
LEFT JOIN [dbo].[Location_Group_Header] AS LGH 
    ON LGH.Node_Code = UL.Location_Code 
WHERE UL.User_Code= 'EZCMP1/EZUSR-8' AND UL.Status = 0 AND CH.Status=0 AND CH.Checkout_Status=1 
GROUP BY Doc_Date,LGH.Node_Name,GD.Guest_Name,CH.Net_Amount 
ORDER BY Doc_Date 

上記のクエリが返す:あいまいな列名 'Doc_Date'

'Doc_Dateは、' 私は私が考えるように正しく別名を与えた

あいまいです。それでは、まだdocの日付があいまいなのはなぜですか?

答えて

2

変更GROUP BY、これまでBY ORDER:

GROUP BY CH.Doc_Date,LGH.Node_Name,GD.Guest_Name,CH.Net_Amount 
ORDER BY CH.Doc_Date 
1

変更この

GROUP BY CH.Doc_Date,LGH.Node_Name,GD.Guest_Name,CH.Net_Amount 
ORDER BY CH.Doc_Date 
1

Doc_Dateを確認してください、それが複数のテーブルです。グループ化すると、グループ化するテーブルDoc_Dateを識別することはできません。グループ別にDoc_Dateを区別するためには、doc_dateフィールドにaliasを付ける必要があります。グループは のようになります。

GROUP BY [aliasname].Doc_Date,LGH.Node_Name,GD.Guest_Name,CH.Net_Amount 
ORDER BY [aliasname].Doc_Date 
関連する問題