Jac*_*gen 0 sql t-sql sql-server sql-server-2008
我有一个问题,为此获得所需的结果.例如,我有这样的表
表格1
+----------------------------------------------------------------------------------------+
|SerialId |serialidtagging |unifiedserial | CreatedDatetime | Wrkctrid | Embedded|
|-----------------------------------------------------------------------------------------
|89250432 | 89250432-1 | 3266AD | 2016-11-19 18:51:06.000 | Entry |DRC53030 |
|89250432 | 89250432-2 | 3266AD | 2017-01-05 17:30:45.000 | Entry |F1461350 |
+----------------------------------------------------------------------------------------+
Run Code Online (Sandbox Code Playgroud)
表2
+---------------------------------------------------------------+
|unifiedserial |Pool| PoNum | audit_date |Row_Num |
-----------------------------------------------------------------
| 3266AD | IP |07664594| 2016-11-22 18:42:07.000 | 1 |
| 3266AD | PL |07733189| 2016-11-26 02:24:12.000 | 2 |
| 3266AD | PL |07771562| 2016-11-29 02:01:28.000 | 3 |
| 3266AD | Re |07784874| 2016-11-29 14:42:05.000 | 4 |
| 3266AD | IP |08394765| 2017-01-09 09:56:59.000 | 5 |
| 3266AD | Re |08427441| 2017-01-10 19:04:37.000 | 6 |
+---------------------------------------------------------------+
Run Code Online (Sandbox Code Playgroud)
期望的输出
+---------------------------------------------------------------------------------------------------------------------+
|unifiedserial |Pool| PoNum | audit_date |Row_num| serialidtagging |serialid | createddatetime |
-----------------------------------------------------------------------------------------------------------------------
| 3266AD |IP | 07664594 |2016-11-22 18:42:07.000 | 1 | 89250432-1 |89250432 | 2016-11-19 18:51:06.000 |
| 3266AD |PL | 07733189 |2016-11-26 02:24:12.000 | 2 | 89250432-1 |89250432 | 2016-11-19 18:51:06.000 |
| 3266AD |PL | 07771562 |2016-11-29 02:01:28.000 | 3 | 89250432-1 |89250432 | 2016-11-19 18:51:06.000 |
| 3266AD |Re | 07784874 |2016-11-29 14:42:05.000 | 4 | 89250432-1 |89250432 | 2016-11-19 18:51:06.000 |
| 3266AD |IP | 08394765 |2017-01-09 09:56:59.000 | 5 | 89250432-2 |89250432 | 2017-01-05 17:30:45.000 |
| 3266AD |Re | 08427441 |2017-01-10 19:04:37.000 | 6 | 89250432-2 |89250432 | 2017-01-05 17:30:45.000 |
----------------------------------------------------------------------------------------------------------------------+
Run Code Online (Sandbox Code Playgroud)
加入表格时,我的参考是unifiedserial
Is可以得到我想要的输出.如果只有unifiedserial是参考?正如你在table1中看到的那样,createddatetime = 2016-11-19 18:51:06.000我不知道是否有可能只从月份获得table2 .据我所知,我可以通过audit_dateaudit_date = createddatetime><= Month of createddatetime-audit_date
对不起,如果没有解释.但请依赖Sample表和输出.
TIA!
SELECT *
FROM table1 t1 JOIN table2 t2
ON t1.unifiedserial = t2.unifiedserial
AND DATEPART(month,t1.createddatetime) = DATEPART(month,t2.audit_date)
AND DATEPART(year,t1.createddatetime) = DATEPART(year,t2.audit_date)
Run Code Online (Sandbox Code Playgroud)