Je demande la base de données pour obtenir un curseur de valeurs dans les dernières 24 heures entré. Je peux interroger et obtenir toutes les valeurs de la colonne A_VALUE que je veux, mais je ne peux pas comprendre comment ou où écrire correctement la sous-requête pour obtenir la somme de la colonne A_VALUE avec les paramètres de clause where et obtenir sa valeur. Toute réflexion sera apprécié. (Arrière-plan ont un codage zéro et j'apprends tout de ce site et d'autres)SQLite sous-requête somme de la colonne dans où clause
// Code actuel pour obtenir des valeurs dans les dernières 24 heures est:
String[] projection = {
DrinkContract.DrinkEntry._ID,
DrinkContract.DrinkEntry.COLUMN_A_VALUE,
DrinkContract.DrinkEntry.COLUMN_TIME_DATE};
//code to query databse for last 24 hours
String selection = DrinkContract.DrinkEntry.COLUMN_TIME_DATE + " BETWEEN strftime('%s', 'now', '-1 day') AND strftime('%s','now') ";
Cursor dayCursor = getContentResolver().query(
DrinkContract.DrinkEntry.CONTENT_URI, // Provider content URI to query
projection, // Columns to include in the resulting Cursor
selection, // selection clause
null,
DrinkContract.DrinkEntry.COLUMN_TIME_DATE); // Default sort order*/
if (dayCursor == null || dayCursor.getCount() < 1) {
return;
}
// Proceed with moving to the first row of the cursor and reading data from it
while (dayCursor.moveToNext()) {
int aValueColumnIndex = dayCursor.getColumnIndex(DrinkContract.DrinkEntry.COLUMN_A_VALUE);
int drinkTimeDateColumnIndex = dayCursor.getColumnIndex(DrinkContract.DrinkEntry.COLUMN_TIME_DATE);
// Extract out the value from the Cursor for the given column index
double aValue = dayCursor.getDouble(aValueColumnIndex);
System.out.println("The total a value is " + aValue);
Une somme est une valeur unique et est calculée à partir de plusieurs lignes. Quelle devrait être la valeur des deux autres colonnes de votre requête? –
Je n'ai pas besoin de la somme des autres colonnes. De ce que j'ai lu il devrait être aussi simple que d'ajouter sum (DrinkContract.DrinkEntry.COLUMN_A_VALUE) ou total (DrinkContract.DrinkEntry.COLUMN_A_VALUE) dans les clauses SELECT ou WHERE pour obtenir la somme ou le total de cette colonne spécifique, mais je peux Cela ne semble pas fonctionner. Merci pour votre réponse – BSGpegasus
S'il vous plaît fournir quelques exemples de données et votre sortie désirée. (Voir [Comment mettre en forme des tables SQL dans un post de débordement de pile ?] (Https://meta.stackexchange.com/q/96125) pour savoir comment en ajouter.) –