Los datos se rellenan de la fecha de una tabla en particular en lugar de toda la tabla en sqlite

Tengo tres tabla es el comercio, anticipo, y el préstamo en el que cuando entré algunos valores en préstamo no se muestra hasta que entrar algunos valores en el comercio para esa fecha en particular / mes.

Entonces, ¿alguien puede decirme cómo puedo superar este problema?

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

Intente lo siguiente.

Lo que he hecho es crear una tabla virtual, que contiene meses únicos. A lo que hay información en una de las 3 mesas para ese mes. Entonces las sumas están obligadas a ese mes.

También he eliminado el ORDER BY en las cláusulas SUM , ya que no cambian el resultado. Su IFNULL también se podría cambiar, dependiendo de cómo usted espera que funcione.

Este método le ahorra escribir 3 lotes de SUM para cada 3 campos (9 SUMs). Si hay algún error tipográfico, por favor, corrija en consecuencia.

NOTA que month es una palabra clave, en algunos SQL. Así que idealmente, se debe usar un nombre de columna mejor.

 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 
  • "Código de error 5: la base de datos está bloqueada" cuando se utiliza un ContentProvider
  • Android Room: ¿Cómo modelar las relaciones?
  • Cómo deshabilitar el botón Borrar datos en Información de aplicación de la aplicación Administrar
  • Vista de lista con la opción de actualización y supresión mediante contextmenu
  • Exención de SQLite sobre la reanudación de la actividad de Android
  • Obtención del tipo de una columna en SQLite
  • Encriptación de contraseña de Android SQlite?
  • Obtener datos de una base de datos vs obtener datos de un mapa hash
  • SQLite en el operador en query ()
  • ¿Cómo usar SQLiteOpenHelper con la base de datos en sd-card?
  • Implementación correcta de la base de datos Android asíncrona de SQLite
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.