SQL-打印具有特定数据类型和日期的列表。

SQL-打印具有特定数据类型和日期的列表。,sql,ms-access,Sql,Ms Access,我被要求展示2004年5月注射过的宠物名单。我的意思是不显示访问日期,宠物的名字,类型,品种和治疗类型。然后我需要按访问日期对报告进行排序。我已经在下面添加了我的SQL命令,以及我的pet和visit表的结构。我不知道如何从我当前的SQL命令转到问题中请求的SQL命令 SELECT Visit_Date, Name, Type, Breed, Treatment FROM visit, pet WHERE Treatment = 'injection' ORDER BY Visit_Date;

我被要求展示2004年5月注射过的宠物名单。我的意思是不显示访问日期,宠物的名字,类型,品种和治疗类型。然后我需要按访问日期对报告进行排序。我已经在下面添加了我的SQL命令,以及我的pet和visit表的结构。我不知道如何从我当前的SQL命令转到问题中请求的SQL命令

SELECT Visit_Date, Name, Type, Breed, Treatment
FROM visit, pet
WHERE Treatment = 'injection'
ORDER BY Visit_Date;
宠物桌结构:

pet_id, Name, Type, Breed, Gender, Born, owner_id, Notes
visit_id, pet_id, vet_id, Visit_Date, Basic_Cost, Symptom, Treatment
示例数据: P0001,蒂德尔,猫,波斯语,F,1998,2,脾气不好,抓挠你

访问表结构:

pet_id, Name, Type, Breed, Gender, Born, owner_id, Notes
visit_id, pet_id, vet_id, Visit_Date, Basic_Cost, Symptom, Treatment
示例数据: VS01,P0001,V01,21/04/2004,23.99,左耳咬伤,注射


我真的希望你能帮我,因为我不知道该怎么做。非常感谢您的帮助。请注意,我正在使用ms access。

这将帮助您了解连接类型:

几件事:

  • 了解如何使用内部/外部联接语法联接表
  • 了解year()函数
  • 了解month()函数
  • 了解如何为表添加别名以保存键入并提高可读性(并在所有字段上使用它们),以便在不同表中存在相同命名列时了解源表

  • 这将帮助您了解联接类型:

    几件事:

  • 了解如何使用内部/外部联接语法联接表
  • 了解year()函数
  • 了解month()函数
  • 了解如何为表添加别名以保存键入并提高可读性(并在所有字段上使用它们),以便在不同表中存在相同命名列时了解源表

  • 加入上的
    pet_id
    将给出您的预期结果。使用和功能进行日期筛选

    还可以使用表别名以提高可读性

    SELECT V.Visit_Date, P.Name, P.Type, P.Breed, V.Treatment
    FROM visit AS V
    JOIN pet AS P ON P.pet_id = V.pet_id
    WHERE V.Treatment = 'injection' AND MONTH(V.Visit_Date) = 5 AND YEAR(V.Visit_Date) = 2004
    ORDER BY V.Visit_Date;
    

    加入上的
    pet_id
    将给出您的预期结果。使用和功能进行日期筛选

    还可以使用表别名以提高可读性

    SELECT V.Visit_Date, P.Name, P.Type, P.Breed, V.Treatment
    FROM visit AS V
    JOIN pet AS P ON P.pet_id = V.pet_id
    WHERE V.Treatment = 'injection' AND MONTH(V.Visit_Date) = 5 AND YEAR(V.Visit_Date) = 2004
    ORDER BY V.Visit_Date;
    

    您需要连接表访问pet,在两者之间使用pet_ID上的内部连接(我假设)您需要连接表访问pet,在两者之间使用pet_ID上的内部连接(我假设)满足日期要求(我最初也这么做)“显示2004年5月期间注射过的宠物列表。”@xQbert Yeah missed,现在补充道。错过了日期要求(我一开始也是这样)“显示2004年5月注射过的宠物列表。”@xQbert Yeah missed,now added.感谢您的链接。在完成任务后,我确实希望更多地阅读SQL。虽然我以前使用过某种程度的联接类型,但真正阻止我前进的是包含日期。因为通过注入搜索只是其中一部分。我还需要在2004年5月内搜索数据。日期搜索是否有太多的月/年函数将我对日期的评论作为目标。谢谢,我将尝试一下。当我尝试运行该命令时,我遇到了一个错误。FROM子句中出现语法错误。oops缺少关于子句的
    。我想我也需要阅读这些连接:/谢谢链接。我确实想在完成任务后阅读SQL更多内容s、 虽然我以前在一定程度上使用过连接类型,但真正阻止我前进的是包括日期。因为通过注入搜索只是其中一部分。我也需要在2004年5月内搜索数据。日期搜索也有月/年功能,用于定位我对日期的评论。谢谢,我将尝试一下。我在n我尝试运行该命令。FROM子句中出现语法错误。子句上缺少
    。我想我也需要阅读这些连接:/