0

私は次のINNERJOINクエリを持っています。これは、ここでフィドルで実際に動作しているのを見ることができます。

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」という列を追加したいと思います。これは日付列と同じように機能します。つまり、各行の「url」列に個別の値を返します。ここで、フィドルに新しい列を含むスキーマを見つけることができます。個別の「url」値を持つ追加の列を返すようにクエリを適応させる方法がわかりません。私はいくつかのことを試しましたが、正しく機能させることができません。

4

2 に答える 2

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

于 2013-02-23T11:07:21.460 に答える
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')
于 2013-02-23T11:14:53.853 に答える