SOK*_*SOK 1 sql t-sql sql-server join date
我在 SQL 中有两个表正在尝试连接。
表格1:
Date | Name | Shoe_Size | Pay_method
2020-04-04 05:27:00.0000000 | J.Bloggs | 8 | Credit
2020-04-04 05:55:00.0000000 | J.Smith | 10 | Cash
2018-06-20 05:27:00.0000000 | J.Bloggs | 6 | Cash
2018-08-15 05:55:00.0000000 | J.Smith | 9 | Cash
Run Code Online (Sandbox Code Playgroud)
表2:
Date_ID | Name | TShirt_Size
2020-04-04 00:00:00.0000000 | J.Bloggs | M
2020-04-04 00:00:00.0000000 | J.Smith | L
2018-06-20 00:00:00.0000000 | J.Bloggs | S
2018-08-15 00:00:00.0000000 | J.Smith | M
Run Code Online (Sandbox Code Playgroud)
我想合并表格来显示:
Date | Name | Shoe_Size | TShirt_Size
2020-04-04 05:27:00.0000000 | J.Bloggs | 8 | M
2020-04-04 05:55:00.0000000 | J.Smith | 10 | L
2018-06-20 05:27:00.0000000 | J.Bloggs | 6 | S
2018-08-15 05:55:00.0000000 | J.Smith | 9 | M
Run Code Online (Sandbox Code Playgroud)
我尝试过的代码:
SELECT a.Date, a.Name, a.Shoe_Size, b.DATE_ID, b.Name, b.Tshirt_Size
From Table1 a, Table2.b
WHERE a.Name = b.Name
Run Code Online (Sandbox Code Playgroud)
但显然没有考虑日期维度。
我不确定如何获得的东西:
如何根据两个公共列(名称和日期)加入。
表 1 中的日期具有准确的时间,而表 2 中的日期仅具有正确的日期。每个名字每天只能有一个条目。
任何帮助将非常感激。
试试这个 - 使用正确的ANSI JOIN,并仅比较日期(无时间部分):
SELECT
a.Date, a.Name, a.Shoe_Size, b.Name, b.Tshirt_Size
FROM
Table1 a
INNER JOIN
Table2 b ON a.Name = b.Name
AND CAST(a.Date AS DATE) = CAST(b.Date_ID AS DATE)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1738 次 |
| 最近记录: |