2017-04-11 46 views
0

我正在写一个sql查询来显示在其行程中发生运动费和晚餐费的客人姓名。有人可以指导我设置查询的正确方向吗?编写一个sql查询以显示特定费用

这是我有,但没有给出结果..

SELECT GUEST.FIRSTNAME, CHARGETYPE.DESCRIPTION 
FROM GUEST, CHARGES, CHARGETYPE 
WHERE CHARGETYPE.CHARGEID = CHARGES.CHARGEID 
AND CHARGES.CHARGEID = '07' 
AND CHARGES.CHARGEID = '03' 

的chargeid 07和03反映了运动和晚餐费尊敬。即时通讯缺乏信息抱歉,第一次真的使用stackoverflow。

这里是CHARGETYPE表

CHARGEID and DESCRIPTION are the column names 
01 ROOM DEPOSIT   
02 LUNCH SERVICE  
03 DINNER SERVICE  
04 BREAKFAST SERVICE 
05 ROOM CHARGE   
06 GIFTSHOP PURCHASE 
07 ATHLETIC CHARGE   

CHARGEID, ITINID, CHARGETIME, AMOUNT, GUESTID are the columns for the CHARGES table 
01 001 11:00 -1850001 
02 001 14:00 30 0001 
03 001 18:00 55 0001 
04 001 11:00 20 0001 
05 001 20:00 20 0001 
08 001 12:00 20 0001 
01 002 16:00 -185 0002 
02 002 16:30 40 0002 
04 002 10:00 20 0002 
05 002 14:00 25 0002 
09 002 15:00 25 0002 
01 003 10:00 -185 0003 
02 003 12:00 30 0003 
03 003 18:00 50 0003 
04 003 11:00 18 0003 
05 003 12:30 27 0003 
06 003 14:45 30 0003 
01 004 11:00 -185 0004 
02 004 13:00 40 0004 
03 004 19:00 60 0004 
04 004 11:00 15 0004 
05 004 20:00 34 0004 
01 005 10:00 -185 0005 
02 005 12:00 30 0005 
03 005 17:00 30 0005 
04 005 10:00 10 0005 
05 005 16:00 25 0005 
01 006 11:00 -185 0001 
02 006 12:00 22 0001 
03 006 18:00 40 0001 
04 006 08:00 15 0001 
05 006 20:00 60 0001 
07 006 14:00 50 0001 
01 007 11:00 -185 0003 
02 007 12:00 20 0003 
03 007 17:00 55 0003 
04 007 10:00 15 0003 
05 007 16:00 45 0003 
01 008 11:00 -185 0005 
02 008 13:00 20 0005 
03 008 18:00 60 0005 
04 008 09:00 20 0005 
05 008 22:00 65 0005 
07 008 12:00 50 0005 

GUESTID LASTNAME FIRSTNAME are the columns for the GUEST table 
0001 SMITH  JOHN   
0002 SMITH  LISA   
0003 ADAMS  PETER  
0004 ADAMS  JANE   
0005 JOHNSON  DEAN   
+1

编辑你的问题,并添加表结构,样本数据,并且你已经尝试了什么。 – WillardSolutions

+0

我投票结束这个问题作为题外话,因为OP没有表现出努力在自己解决问题。 –

+0

我编辑了我的问题以显示我目前拥有的代码。请不要投这个“off-topic” –

回答

0
SELECT G.FIRSTNAME,G.LASTNAME, CT.DESCRIPTION 
    FROM GUEST G 
INNER JOIN CHARGETYPE CT 
    ON G.GUESTID = C.GUESTID 
INNER JOIN CHARGES 
    ON CT.CHARGEID = C.CHARGEID 
WHERE C.CHARGEID IN ('07','03'); 
+0

CHARGEID不能同时为'07'和'03'。考虑这些值的IN列表。 – unleashed

+0

是的..我编辑我的答案.... U评论.. :) – Teja

+0

当我试着你的解决方案它说,“C.GUESTID”是一个无效的标识符 –