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.
Boa noite. Pessoal, mais uma vez aqui pedindo uma ajuda.
Estou tentando enviar uma NFSe via SOAP.
Estou recebendo o seguinte erro:
Fatal error: Uncaught SoapFault exception: [SOAP-ENV:Client] ERRO : cvc-complex-type.4: Attribute 'Algorithm' must appear on element 'ns2:CanonicalizationMethod'. in
O meu Array está da seguinte forma: Array ( [CanonicalizationMethod] => Array ( [@attributes] => Array ( [Algorithm] => http://www.w3.org/TR/2001/REC-xml-c14n-20010315 ) )
Não entendi o porque desse erro, alguém sabe ajudar?