2013-02-23 79 views
0

我有以下INNER JOIN查询,您可以在小提琴here中看到该操作。将附加列添加到INNER JOIN SQL查询

SELECT b.*, c.date2 
FROM (
      SELECT a.work, a.amount, 
        COUNT(*) totalCount, 
        SUM(Amount) totalAmount 
      FROM tableName a 
      GROUP BY a.work, a.amount 
     ) b 
     INNER JOIN 
     (
      SELECT a.work, a.amount, DATE_FORMAT(Date,'%D %M %Y') date2, 
        date 
      FROM tableName a 
     ) c ON b.work = c.work and b.amount=c.amount 
ORDER BY b.work, b.totalCount, c.date 

我想补充另一塔,被称为“网址”的查询,在相同的方式,日期列的作品,即它在“URL”列返回不同值的每一行。您可以在小提琴here中找到包含新列的模式。我不知道如何调整查询以返回具有不同“url”值的额外列。我已经尝试了一些东西,但无法让它正常工作。

+0

有什么期望输出写? – hkutluay 2013-02-23 11:03:18

+0

期望输出与第一个小提琴中的输出相同,但每行的不同URL值都有一个附加列。 – Nick 2013-02-23 11:06:11

回答

2

你可以试试这个...

 
    SELECT b.*, c.date2, c.url 
    FROM (
      SELECT a.work, a.amount, 
        COUNT(*) totalCount, 
        SUM(Amount) totalAmount 
      FROM tableName a 
      GROUP BY a.work, a.amount 
     ) b 
     INNER JOIN 
     (
      SELECT a.work, a.amount, DATE_FORMAT(Date,'%D %M %Y') date2, 
        date, url 
      FROM tableName a 
     ) c ON b.work = c.work and b.amount=c.amount 
    ORDER BY b.work, b.totalCount, c.date 

+0

谢谢,这工作正常。我确信我尝试了这个解决方案,但看起来我没有办法! – Nick 2013-02-23 11:12:46

2

它可以在较短的类似

SELECT a.work, a.amount, 
        COUNT(*) totalCount, 
        SUM(Amount) totalAmount, url, DATE_FORMAT(Date,'%D %M %Y') 
      FROM tableName a 
      GROUP BY a.work, a.amount, DATE_FORMAT(Date,'%D %M %Y')