sql >> Database >  >> RDS >> SQLite

Gegevens worden ingevuld vanaf de datum van een bepaalde tabel in plaats van alle tabellen in sqlite

Probeer het onderstaande.

Wat ik heb gedaan, is een virtuele tabel maken met daarin unieke maanden. Waarop informatie staat in een van de 3 tabellen voor die maand. Dan zijn de bedragen gebonden aan die maand.

Ik heb ook de ORDER BY . verwijderd in de SUM clausules, omdat ze het resultaat niet veranderen. Uw IFNULL kan ook worden gewijzigd, afhankelijk van hoe u verwacht dat het werkt.

Deze methode bespaart u het schrijven van 3 partijen SOM's voor elke 3 velden (9 SUM's). Als er typefouten zijn, corrigeer die dan dienovereenkomstig.

LET OP dat month is een sleutelwoord, in sommige SQL. Dus idealiter zou een betere kolomnaam moeten worden gebruikt.

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. DBaaS-failoveroplossingen vergelijken met handmatige herstelconfiguraties

  2. Kunnen we meerdere WITH AS hebben in één sql - Oracle SQL?

  3. Oplossingen voor INSERT OF UPDATE op SQL Server

  4. Hoe voer je SQL uit vanuit een bash-script?