sql >> データベース >  >> RDS >> SQLite

データは、sqliteのすべてのテーブルではなく、特定のテーブルの日付から入力されます

    以下をお試しください。

    私が行ったことは、一意の月を含む仮想テーブルを作成することです。その月の3つのテーブルの1つに情報があります。次に、合計はその月にバインドされます。

    ORDER BYも削除しました SUMで 結果を変更しないため、句。 IFNULL 期待する動作に応じて変更することもできます。

    この方法では、3つのフィールド(9つのSUM)ごとに3つのSUMを書き出す必要がありません。タイプミスがある場合は、それに応じて修正してください。

    month 一部のSQLではキーワードです。したがって、理想的には、より適切な列名を使用する必要があります。

    SELECT month, 
    (SELECT IFNULL (SUM(FTL.tradebalanceamount),0 ) 
       FROM farmertradelabel as FTL 
       WHERE FTL.mobileno = '9486032141'  AND strftime('%m-%Y', FTL.tradedate) = month) AS tradeamount,
    (SELECT IFNULL (SUM(advanceamount),0)  
       FROM advancelabel 
       WHERE advancelabel.mobileno = '9486032141' AND strftime('%m-%Y', advancelabel.advancedate) = month) AS advanceamount,
    (SELECT IFNULL (SUM(loantotalamount),0) 
      FROM loanlabel 
      WHERE loanlabel.mobileno = '9486032141' AND strftime('%m-%Y', loanlabel.loandate) = month) AS loanamount   
    
    FROM
     (SELECT strftime('%m-%Y', tradedate) as 'month' FROM farmertradelabel
     UNION 
       SELECT  strftime('%m-%Y', advancedate) as 'month' FROM advancelabel
     UNION 
       SELECT strftime('%m-%Y', loandate) as 'month' FROM loanlabel
     ) as dateTable
    



    1. 日付と時刻で降順で並べ替えますか?

    2. オラクルで一重引用符を予測してエスケープする方法'

    3. LEFT(外部)結合を使用する場合、結合内のテーブルの順序は重要ですか?

    4. OracleのFLOOR()関数