Pessoal, estou precisando retornar o valor total de receita e valor total de despesas por mês nesse estilo:
Despesa Receita
Janeiro 50.00 200.00
Fevereiro 0 500.00
Março 100.00 500.00
Cheguei a essa consulta abaixo mas esta retornando o mesmo valor para todos os mês
SELECT MONTHNAME(`data_vencimento`) as mes, (SELECT SUM(`valor`) as valor_total FROM lancamentos WHERE tipo = 'despesa' and YEAR(`data_vencimento`) = 2022 AND `empresa` = 1) as despesas, (SELECT SUM(`valor`) as valor_total FROM lancamentos WHERE tipo = 'receita' and YEAR(`data_vencimento`) = 2022 AND `empresa` = 1) as receitas From lancamentos GROUP BY MONTH(`data_vencimento`) ORDER BY MONTH (`data_vencimento`);
O Retorno esta assim
Despesa Receita
Janeiro 50.00 200.00
Fevereiro 50.00 200.00
Março 50.00 200.00
Alguém consegue me ajudar com essa consulta?
Obrigado
Meu programa não consegue identificar o dotenv na middleware
Eu estava fazendo um CRUD simples, implementei o dotenv no meu programa, está funcionando quando faço a conexão com o banco de dados e a inserção e uma função normal, mais quando vou fazer isso dentro de uma middleware ele não chama meu dotenv, só funciona quando tiro o process.env e ponho as informações direto na função de conexão.
require( 'dotenv' ).config( { path: '../../.env' } )
const mysql = require( 'mysql2' )
// DESSA FORMA NÃO FUNCIONA
const connection_pool = mysql.createPool( {
host: process.env.DB_HOST,
user: process.env.DB_USER,
database: process.env.DB_DATABASE,
password: process.env.DB_PASS
} )
// DESSA FORMA FUNCIONA
// const connection_pool = mysql.createPool( {
// host: 'localhost',
// user: 'carlos',
// database: 'simple_crud',
// password: 'pass1241'
// } )
module.exports = connection_pool.promise()
INSERÇÃO NO BANCO DE DADOS
const db_conn = require( '../db/connection' )
const createNewClient = ( name ) => {
return db_conn.execute( `INSERT INTO client ( name ) values (?)`, [ name ] )
}
module.exports = { createNewClient }
FAZENDO A INSERÇÃO NO MIDDLEWARE
const data = require( '../data/client' )
const createClient = ( req, res, next ) => {
const client = req.body.name
data.createNewClient( client )
.then( () => {
res.status( 200 ).json( { 'status': 'sucess', 'client': client } )
} )
.catch( ( err ) => {
res.status( 404 ).json( { status: 'error', error: err } )
} )
.finally( () => {
next()
} )
}
module.exports = { createClient }
{
"status": "error",
"error": {
"message": "Access denied for user ''@'localhost' (using password: YES)",
"code": "ER_ACCESS_DENIED_ERROR",
"errno": 1045,
"sqlState": "28000",
"sqlMessage": "Access denied for user ''@'localhost' (using password: YES)"
}
}
Esse é o erro que obtenho quando uso o dotenv, lenbrando que as informações de login estão todas certas, e que em outra função que não seja um middleware funciona.
Estou trabalhando numa programação PHP é conectado na tabela (cl_configs) para reconhece coluna name que reconhece esses 5 campos.
e também que adiciona esses 5 valores é adicionado nessa outra tabela (cl_ads_block_ips) nesses 8 coluna (id, ip, clicks, last_click, dads_refresh_qtd, dads_refresh_data, dads_refresh_ldata, clicks_rotativo_dia).
E a conexão que eu usa era de outro site e não estou tendo problema e configurar em outro site que reconhece essa banco de dados abaixo.
<?php
$host = "localhost";
$user = "ads";
$pass = "_CMpFF4Hpa!G_gTh";
$dbname = "ads";
$port = 3306;
try {
$conn = new PDO('mysql:host=' . $host . ';port=' . $port . ';dbname=' . $dbname, $user, $pass);
//echo "Conexão com banco de dados realizado com sucesso!";
} catch (PDOException $err) {
echo "Erro: Conexão com banco de dados não foi realizada com sucesso. Erro gerado " . $err->getMessage();
}
?>
Conecta com sucesso só não está reconhecendo a tabela (cl_configs) e nem adicionando na tabela (cl_ads_block_ips).
Agora não sei porque não esta reconhecendo (cl_configs) e nem adicionando (cl_ads_block_ips).
Bom dia, ultimamente eu venho tentado baixar o connector/J do MySQL para fazer um CRUD porém quando eu baixo o connector ele vem em formato de pasta, e sinceramente não sei mais o que fazer, eu baixei até pelo instalador do MySQL mas ele vem em formato de pasta ele vem assim, e não sei o porque disso.
Estou iniciando um estudo com o banco MySQL (trabalho co PostgreSQL e Firebird) para futuros trabalhos. Bom, me deparei com um problema chato: caracteres especiais.
Um exemplo: T�tulo.
Não consigo exibir no meu site tais caracteres. O banco tem Charset/Collation: utf8/utf8_bin como configuração.
Já usei o utf_encode e utf_decode - não resolveu.
Alguém sabe o que mais posso fazer?
Desde já, muito obrigado.