Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQL查询其他表中的最大日期和某些字段_Sql_Date_Max - Fatal编程技术网

SQL查询其他表中的最大日期和某些字段

SQL查询其他表中的最大日期和某些字段,sql,date,max,Sql,Date,Max,我有两张桌子,比如说A和B 表:A ID_Sender | Date ________________________ 1 | 11-13-2013 1 | 11-12-2013 2 | 11-12-2013 2 | 11-11-2013 3 | 11-13-2013 4 | 11-11-2013 表:B ID | Tags _____________________

我有两张桌子,比如说A和B

表:A

ID_Sender |  Date     
________________________
   1      | 11-13-2013
   1      | 11-12-2013

   2      | 11-12-2013
   2      | 11-11-2013

   3      | 11-13-2013
   4      | 11-11-2013
表:B

    ID    |  Tags
_______________________
1         | Company A
2         | Company A
3         | Company C
4         | Company D
结果表:

Tags        |   Date
____________________________
Company A   | 11-13-2013
Company C   | 11-13-2013
Company D   | 11-11-2013
我已经尝试过了,但是没有成功,我做了一些内部连接和子查询,但是没有生成输出

这是我到目前为止的代码,以及附带的输出图像

SELECT E.Tags, D.[Date] FROM 
        (SELECT A.ID_Sender AS Sendah, MAX(A.[Date]) AS Datee
        FROM tblA A
        LEFT JOIN tblB B ON A.ID_Sender = B.ID
        GROUP BY A.ID_Sender) C
    INNER JOIN tblA D ON D.ID_Sender = C.Sendah AND D.[Date] = C.Datee
    INNER JOIN tblB E ON E.ID = D.ID_Sender
有什么建议吗?我已经把头发拔出来了! (也许你们可以给我一些有用的sql概念,答案没那么必要,因为我真的很想自己解决:))

谢谢

SELECT Tags, MAX(Date) AS [Date]
FROM dbo.B INNER JOIN dbo.A
  ON B.ID = A.ID_Sender
GROUP BY B.Tags

结果

Company A   November, 13 2013 00:00:00+0000
Company C   November, 13 2013 00:00:00+0000
Company D   November, 11 2013 00:00:00+0000

试试这个,如果我错了,请让我改正。表B中Id=2是我假设的公司B。。如果它是正确的,那么继续执行此代码

   declare @table1 table(ID_Sender int,  Dates varchar(20))
   insert  into @table1 values 
   ( 1      , '11-13-2013'),
   (1      , '11-12-2013'),
   (2      ,'11-12-2013'),
   (2      ,'11-11-2013'),
   (3      ,'11-13-2013'),
   (4      ,'11-11-2013')

   declare @table2 table ( id int, tags varchar(20))
   insert into @table2 values 
   (1         ,'Company A'),
   (2         , 'Company B'),
   (3         , 'Company C'),
   (4         , 'Company D')


;with cte as
(
    select 
    t1.ID_Sender, t1.Dates, t2.tags
    from @table1 t1
    join
    @table2 t2 on t1.ID_Sender = t2.id
)
select tags, MAX(dates) as dates from cte group by tags

首先在B表的ID上用“Company B”更改您的架构

这是我的密码:

 Select B.Tags, max(A.Date) as 'Date'
 from A, B
  where B.ID = A.ID_Sender
  group by B.Tags

哦,我不能添加图像,但它需要一些声誉的东西,然后我才能这样做。我把它存储在本地计算机上,我想我需要在使用它之前上传到另一个网站上。你的答案已经准备好了。你已经给出了我的答案。。我正在编写相同的查询,但在提交之前,我单击了“加载答案”。。你的答案就在那里。。所以它说,无效的对象名“dbo.B”。@Codemunkeee:这是你的表名(“我有两个表,比如A和B”),
dbo
是架构。@tim这是什么!我现在觉得自己很愚蠢。。我花了将近3个小时编写的所有代码都是4行代码他非常感谢你!现在我终于可以继续我的生活了D@tim是的,我以为你指的是那里的数据库。。呵呵。谢谢