下面是问题和我尝试的答案,我附上了架构的图片。我不习惯 teradata,并且遇到很多麻烦。不确定我的SQL是否只是生锈,或者该程序的运行方式是否与我习惯的程序不同。任何帮助将不胜感激!
问:查找 2000 年 1 月优势会员在商店 20 购买的电子产品的平均单位零售金额。提示:优势会员以member_type"V"表示。第 5 类是电子产品。对于日期,请使用 2000 年 2 月 20 日的格式"20000220">
数据库架构
SELECT AVG(Unit_Retail_Amount)
FROM item_scan, store_visits, member_index, item_desc
WHERE item_scan.visit_number = store_visits.visit_number
AND store_visits.membership_nbr = member_index.membership_nbr
AND item_scan.item_nbr = item_desc.item_nbr
AND member_index.member_type = ‘V’
AND item_scan.transaction_date = ‘200001%’
AND item_desc.category_nbr = ‘5’;
我同意其他人在这里的评论,即显式连接语法更好,并且 LIKE 语句应该与通配符一起使用而不是"="。 3807 错误可能是由 where 语句引起的,当您应该使用架构中的"visit_nbr"时,您使用"visit_number"。