0

同じデータ構造のテーブルが2つあります。

元:

table 1 (id, pay_amount, package, date)
table 2 (id, pay_amount, package, date)

両方のテーブルからKohanaフレームワークデータを取得し、結果を日数で合計するにはどうすればよいですか?また、文字列をsubstrして、残りの文字列を合計するにはどうすればよいですか(これは数値ですか?例のpackage_credit_行を見てください)。

たとえば、このデータがある場合:

Table1: 
(1, 200, "package_credit_300", "12.12.12 12:02:34"), 
(2, 50, "package_credit_50", "12.12.12 15:17:02"), 
(2, 50, "package_credit_50", "13.12.12 16:12:12")

Table2: 
(1, 50, "package_credit_50", "13.12.12 12:02:34"), 
(2, 50, "package_credit_50", "13.12.12 15:17:02"), 
(2, 200, "package_credit_300", "14.12.12 16:12:12")

私はそのようなものを手に入れたい:

Date: 12.12.12 - Credit: 350 - Paid: 250
Date: 13.12.12 - Credit: 150 - Paid: 150
Date: 14.12.12 - Credit: 300 - Paid: 200
4

2 に答える 2

1

これは、コハナのORMまたはActiveRecordを使用して実行することはできません。このカスタムSQLを実行する必要があります。

SELECT Date(t.`date`)                                    AS `Date`, 
       Sum(Cast(Substring(t.`package`, 16) AS UNSIGNED)) AS `Credit`, 
       Sum(t.pay_amount)                                 AS `Paid` 
FROM   (SELECT * 
        FROM   table1 
        UNION 
        SELECT * 
        FROM   table2) AS `t` 
GROUP  BY `Date` 
ORDER  BY `Date` ASC 
于 2012-12-30T14:11:44.057 に答える
1

これを試して

   SELECT Substring(t.`date`,1,8)                        AS dates, 
   Sum(Cast(Substring(t.`package`, 16) AS UNSIGNED)) AS `Credit`, 
   Sum(t.pay_amount)                                 AS `Paid` 
    FROM   (SELECT * 
    FROM   table1 
    UNION 
    SELECT * 
    FROM   table2) AS `t` 
    GROUP  BY dates 
    ORDER  BY dates ASC 

ここでデモを見てください

于 2012-12-30T14:44:20.050 に答える