2014-02-05 35 views
0

我有两个表,我想更新另一个表中的日期相等的列的一个表的列。这里的问题是两张表中的日期不同。从SQL Server中的另一个表转换数据后的更新表?

SELECT UploadedDateTime = LEFT(CAST(UploadedDateTime AS DATETIME), 11), 
     COUNT(DISTINCT ClientID) AS 'DocsCount' 
FROM ClientUploadedTaxDocuments 
WHERE CONVERT(DATETIME, CONVERT(NVARCHAR(10), UploadedDateTime, 101)) > '1/1/2014' 
GROUP BY LEFT(CAST(UploadedDateTime AS DATETIME), 11) 
ORDER BY LEFT(CAST(UploadedDateTime AS DATETIME), 11) 

出把上面的查询是,

1 .. enter image description here

SELECT * FROM FilesReceivedReport

2 .. enter image description here

在这里,我想更新Y2014(列第二个表格)与DocsCount(第一个表格的列)的日期相等。

谢谢

+1

尝试都转换日期相同的格式? – Raj

+1

你可以把查询创建你的表并插入一些示例行吗? –

+0

@Raj - 我认为这个问题值得赞赏。你说什么 ? –

回答

0

首先,给第一个选定的列一些不错的名字。加上“日”,因此它成为

SELECT UploadedDateTime = LEFT(CAST(UploadedDateTime AS DATETIME), 11) AS 'Date', 
    COUNT(DISTINCT ClientID) AS 'DocsCount' 
FROM ClientUploadedTaxDocuments 
WHERE CONVERT(DATETIME, CONVERT(NVARCHAR(10), UploadedDateTime, 101)) > '1/1/2014' 
GROUP BY LEFT(CAST(UploadedDateTime AS DATETIME), 11) 
ORDER BY LEFT(CAST(UploadedDateTime AS DATETIME), 11) 

然后,尝试这样的事:

UPDATE f set Y2014 = s.DocsCount FROM FilesReceivedReport AS f 
INNER JOIN (your_complicated_select) AS s 
ON f.D == s.Date 
相关问题