SQL查询选择与数据表不同的列以及相应的列值

时间:2018-08-06 09:56:24

标签: mysql sql

我有一个数据表,其中包含4个字段[UpdatedDate][DoggoName][DoggoType][DoggoAge]

[DoggoName]将始终具有相同的[DoggoType][DoggoAge]值。

UpdatedDate DoggoName   DoggoType        DoggoAge
1-Jan       a           Labrador         1
1-Jan       b           Yorkshire        2
1-Jan       c           German Shepherd  3
1-Jan       e           Bull Terrier     2
2-Jan       a           Labrador         1
2-Jan       d           Golden Retriever 1
2-Jan       e           Bull Terrier     2
2-Jan       f           Poodle           3
3-Jan       a           Labrador         1
3-Jan       b           Yorkshire        2
3-Jan       c           German Shepherd  3

我希望在2个[DoggoName]及其对应的[UpdatedDate]和'[DoggoAge]`之间选择不同的[DoggoType]

到目前为止,我只设法提出一个基本的SQL查询来绘制不同的[DoggoName]。在Excel上打印,然后遍历[DoggoName]的行以画出其他2列。我想知道是否有一个查询跳过了我的乏味循环。

我的SQL查询:

SELECT DISTINCT [DoggoName] 
FROM [DataTable] 
WHERE [UpdatedDate] BETWEEN #1-Jan-2018# AND #2-Jan-2018#

我的最终输出应如下所示:

DoggoName   DoggoType        DoggoAge
a           Labrador         1
b           Yorkshire        2
c           German Shepherd  3
e           Bull Terrier     2
d           Golden Retriever 1
f           Poodle           3

2 个答案:

答案 0 :(得分:1)

您可以使用DISTINCTselect您的期望列。

SELECT DISTINCT DoggoName,DoggoName,DoggoAge
FROM DataTable 

答案 1 :(得分:0)

如果我确定您可以使用以下查询

SELECT DISTINCT [Doggoname], Doggotype, Doggo_age 
from datatable where [UpdatedDate] BETWEEN #1-Jan-2018# AND #2-Jan-2018#

此外,您可以使用以下内容,因为每种Doggotype都有一条记录

Select distinct doggoname , max(doggotype) as doggotype, max(age) as age from 
datatable
where updateddate between #1-Jan-2018# AND #2-Jan-2018#
group by 1;
quit;