2017-01-18 2 views
0

У меня проблема с получением желаемого результата для этого. Например, у меня есть таблицы, как этотTSQL, соединяющий две таблицы для получения желаемого результата

Table1

+----------------------------------------------------------------------------------------+ 
|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 | 
+----------------------------------------------------------------------------------------+ 

Table2

+---------------------------------------------------------------+ 
|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 | 
+---------------------------------------------------------------+ 

Желаемая выход

+---------------------------------------------------------------------------------------------------------------------+ 
|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 | 
----------------------------------------------------------------------------------------------------------------------+ 

При подключении к таблицам, моя ссылка unifiedserial Возможно получить мой желаемый результат. Если только unifiedserial является ссылкой? Как вы можете видеть в таблице 1 createddatetime = 2016-11-19 18:51:06.000 Я не знаю, можно ли получить table2audit_date только с audit_date = createddatetime. Насколько я знаю, я могу получить это через ><= Month of createddatetime-audit_date

Извините, если вам не хватает объяснений. Но, пожалуйста, полагайтесь на таблицу Sample и выводите.

TIA!

ответ

5
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) 
+0

Благодарим за это предложение. Я получаю желаемый результат, но прежде чем я приму ответ, позвольте мне сначала проверить, эффективен ли он в моем большом объеме таблицы. –

+1

Укажите эффективный для нас? – scsimon

+0

Действует для меня. Отвечает моему желаемому результату :) –

Смежные вопросы