sql >> Databáze >  >> RDS >> SQLite

Data se vyplní z data konkrétní tabulky namísto všech tabulek ve sqlite

Zkuste níže.

To, co jsem udělal, je vytvoření virtuální tabulky obsahující jedinečné měsíce. K čemuž je info v jedné ze 3 tabulek pro daný měsíc. Poté jsou částky vázány na daný měsíc.

Také jsem odstranil ORDER BY v SUM klauzule, protože nemění výsledek. Váš IFNULL lze také změnit v závislosti na tom, jak očekáváte, že bude fungovat.

Tato metoda vám ušetří vypisování 3 šarží SUM pro každé 3 pole (9 SUM). Pokud tam jsou nějaké překlepy, opravte je prosím.

POZNÁMKA, že month je klíčové slovo, v některých SQL. V ideálním případě by tedy měl být použit lepší název sloupce.

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. Migrace schématu:Vztah ke hvězdě

  2. Co je to vygenerovaný sloupec?

  3. Automatický sběr dat změn databázového schématu na MS SQL Server

  4. Pochopení aliasů sloupců ve výběrovém dotazu na serveru SQL - SQL Server / výukový program TSQL, část 115