J'ai des enregistrements dans ma table de base de données.
L'utilisateur passe le début et la date de fin, puis attend une sortie. Si un utilisateur passe la date de début et de fin pour le même mois, il ne doit afficher qu'un seul enregistrement, mais si la date de fin est prolongée d'un mois ou plus, il doit afficher un enregistrement WISE WISE. P>
Pour l'instant, je suis capable de collecter des données totales tout en suivant cette requête. P>
Data_Date_Time == total_kwh == Customer_ID == MSN 2020-04-01 11:44:13 || 50000 || 37010114707 || 7898985212 2020-05-01 10:25:05 || 45585 || 37010114707 || 7898985212
3 Réponses :
Sélectionnez m. J'espère que cela vous aidera à avoir une idée p> data_date_time code> comme 'data_date_time', somme (m.
kWh code>) comme total_kwh, m.
cust_id code> comme "Customer_id", m.
msn code> comme msn, date_format (data_date_time, "% y-% m") en tant que monyear
De
mdc_meters_data code> m où m.
data_date_time> = =
2020-04-01 00:00:00 'et m. Code> data_date_time` <=' 2020-05-31 00:00:00 'Groupe par Monyear P>
La requête ne renvoie pas le résultat correct. Quand j'ai essayé de passer la date de la date de m.data_date_time> = '2020-04-01 00:00:00' et m.data_date_time <= '2020-05-31 00:00:00' code> La somme est
401320 code> pour
2020-04-01 code> et
84220 code> pour
2020-05-31 code> mais quand je passe L'heure de date
m.data_date_time> = '2020-04-01 00:00:00' et m.data_date_time <= '2020-04-30 00:00:00' code> La somme est
370570 code>. Pourquoi est-ce ?
Voulez-vous s'il vous plaît mettez votre table
Veuillez vérifier cette réponse
SELECT m.`data_date_time` AS 'Data_Date_Time', SUM(m.`kwh`) AS total_kwh, m.`cust_id` AS 'Customer_ID', m.`msn` AS MSN FROM table AS r JOIN ( SELECT MAX(m.`data_date_time`) AS data_date_time FROM table AS t GROUP BY YEAR(m.`data_date_time`), MONTH(t.data_date_time) ) AS x USING (data_date_time) `mdc_meters_data` m WHERE m.`data_date_time`>='2020-04-01 00:00:00' AND m.`data_date_time`<='2020-05-31 00:00:00'
ça me donne une erreur. Vous avez une erreur dans votre syntaxe SQL; Vérifiez le manuel qui correspond à la version de votre serveur Mariadb pour la bonne syntaxe à utiliser à proximité de «Tableau comme r Joindre code>
Vous devrez utiliser Le problème avec la requête ci-dessus est que vous n'avez pas besoin de grouper vos résultats par une solution de contournement est à utiliser aussi, Notez la manière dont le 31 de mai a été inclus dans votre requête en donnant en prolongeant la plage à l'heure 23:59:59. P> P> groupe par code> la bonne manière.
msn code> p>
Any_Value CODE> Fonction autour de votre
MSN CODE> MSN de la liste Select. Cela ne choisira que n'importe quelle valeur
msn code> dans la liste correspondante et assurez-vous que vous n'aurez toujours que 2 entrées affichées dans les résultats. P>
Paramètres incorrects dans l'appel à la fonction stockée 'Any_Value' Code> C'est ce que cela me donne cette erreur
Réponse modifiée. Vous auriez dû réaliser comment le faire fonctionner de toute façon.
Maintenant, il me donne MDC_DB.ANY_Value n'existe pas code>
Any_Value code> est une fonction MySQL standard. Si votre serveur ne peut pas le trouver, vous avez un problème sur votre serveur. ripttuly.com/mysql/example/26731/any-value--
Sans groupe par clause, et avec la somme () agrégée dans la liste Select, la requête ne reviendra pas plus d'une ligne. (Si sql_mode comprend uniquement_full_group_by, alors mySQL retournera une erreur pour cette requête, un comportement plus cohérent avec la norme et la plupart des autres RDBMS oracle, SQL Server, Teradata, et al. Une extension spécifique MySQL permet à la requête de retourner des lignes, mais les valeurs renvoyées Pour les expressions non agrégates dans la liste Select (Cust_ID, MSN) sont indéterminée i>. Les valeurs seront renvoyées d'une certaine ligne dans le groupe effondré, mais aucune garantie quelle ligne.)