Pesquisar na Comunidade
Mostrando resultados para as tags ''subselect''.
Encontrado 4 registros
-
Bom Dia Galera preciso da ajuda de vocês para sabe aonde estou errando nesse subselect. Preciso pegar valores por Filial, Seção e por Mês(tabelas diferentes por mês). Obrigado
-
Olá pessoal, poderiam me ajudar? Tenho as seguintes tabelas: CREATE TABLE horariofuncionario ( codigo_horariofuncionario INTEGER UNSIGNED NOT NULL AUTO_INCREMENT, codigo_statushorariofuncionario INTEGER UNSIGNED NOT NULL, codigo_funcionario INTEGER UNSIGNED NOT NULL, horario_horariofuncionario VARCHAR(5) NOT NULL, data_horariofuncionario VARCHAR(10) NOT NULL, nomeDiaSemana_horariofuncionario VARCHAR(15) NOT NULL, PRIMARY KEY(codigo_horariofuncionario), FOREIGN KEY(codigo_funcionario) REFERENCES funcionario(codigo_funcionario) ON DELETE NO ACTION ON UPDATE NO ACTION, FOREIGN KEY(codigo_statushorariofuncionario) REFERENCES statushorariofuncionario(codigo_statushorariofuncionario) ON DELETE NO ACTION ON UPDATE NO ACTION ); CREATE TABLE servicosalao ( codigo_servicosalao INTEGER UNSIGNED NOT NULL AUTO_INCREMENT, codigo_salao INT NOT NULL, codigo_servico INTEGER UNSIGNED NOT NULL, preco_servicosalao VARCHAR(20) NULL, tempo_servicosalao INTEGER UNSIGNED NULL, descricao_servicosalao VARCHAR(200) NULL, PRIMARY KEY(codigo_servicosalao), FOREIGN KEY(codigo_salao) REFERENCES salao(codigo_salao) ON DELETE NO ACTION ON UPDATE NO ACTION, FOREIGN KEY(codigo_servico) REFERENCES servico(codigo_servico) ON DELETE NO ACTION ON UPDATE NO ACTION ); CREATE TABLE statushorariofuncionario ( codigo_statushorariofuncionario INTEGER UNSIGNED NOT NULL AUTO_INCREMENT, nome_statushorariofuncionario VARCHAR(30) NOT NULL, PRIMARY KEY(codigo_statushorariofuncionario) ); Preciso selecionar os HORARIOFUNCIONARIO.horario_horariofuncionario em que o HORARIOFUNCIONARIO.codigo_statushorariofuncionario seja 1 ou 3 e que não contenha nenhum registro na tabela horariofuncionario em que o HORARIOFUNCIONARIO.horario_horariofuncionario esteja entre o HORARIOFUNCIONARIO.horario_horariofuncionario e o HORARIOFUNCIONARIO.horario_horariofuncionario + SERVICOSALAO.tempo_servicosalao e o HORARIOFUNCIONARIO.codigo_statushorariofuncionario seja igual a 2. Então tenho a query: SELECT hf.horario_horariofuncionario FROM horariofuncionario hf WHERE hf.codigo_statushorariofuncionario IN (1,3) HAVING (SELECT COUNT(hf.codigo_horariofuncionario) FROM horariofuncionario hf NATURAL JOIN servicosalao ss WHERE hf.codigo_statushorariofuncionario = 2 AND STR_TO_DATE(hf.horario_horariofuncionario,'%H:%i') BETWEEN STR_TO_DATE(hf.horario_horariofuncionario,'%H:%i') AND SEC_TO_TIME( SUM( TIME_TO_SEC( STR_TO_DATE(hf.horario_horariofuncionario,'%H:%i') ) + TIME_TO_SEC( STR_TO_DATE(ss.tempo_servicosalao,'%H:%i') ) ) ) ) < 1;Está retornando o erro: Invalid use of group function ErrorNr 1111
-
Boa tarde, estou fazendo uma tela de plano de contas, com controle de entradas e saídas, onde tenho a tabela de lançamentos: id |conta | lancamento | valor | tipo 1 | 2 | Recebimento | 50,00 | E 2 | 2 | Recebimento | 50,00 | E 3 | 2 | Pagamento | 40,00 | S 4 | 3 | Recebimento | 80,00 | E 5 | 3 | Pagamento | 40,00 | S onde eu preciso somar o total das entradas(tipo E), somar o total das saidas(Tipo S), agrupar por contas, e a diferenca é o saldo da conta, preciso que me retorne da seguinte forma: conta |entradas | saidas | saldo 2 |100,00 | 40,00 | 60,00 3 |80,00 | 40,00 | 40,00 uso mysql 5.2 Desde já agradeço a ajuda.
-
Bom dia. Tenho um banco de dados Firebird 1.5.6. Estou rodando uma consulta muuuuuuuuito grande, cheia de subqueries somando varios valores. Basicamente o que eu preciso é agrupar pelo tipo de lançamento. Porem eu tenho 7 tipos de lancamentos diferentes, o que eu fiz foi transformar esses 7 tipos em 2 usando case, e agrupar por estes 2. vou postar parte do sql (n posso postar todo) pra vocês terem uma ideia do que to falando... select distinct fo.ano, fo.idlancamento, Case fo.tipolancamento when '3' then '1' else '0' end as tipofolha, fo.data, f.cliente, (select sum(fi.valor) from lanc fo3 inner join itemlanc fi on (fo3.folha=fi.folha) and (fo3.ano=fi.ano) inner join item e on (fi.item=e.item) where fi.item in (select es.itemsys from itemsys es where es.nome = 'valor1') and fo3.tipolancamento = fo.tipolancamento and fo3.data between '2013-01-01' and '2013-01-31' and fo3.cliente=f.cliente ) as valor_base, -- --contem varias subquereies como a anterior - - from lanc fo where fo.data between '2013-01-01' and '2013-01-31' and fo.ano=2013 group by case when fo.tipolancamento = 3 then 1 else 0 end o problema é que aquando rodo esse comando, aparece a seguinte msg: Error: GDS Exception. 335544569. Dynamic SQL Error SQL error code = -104 Invalid expression in the select list (not contained in either an aggregate function or the GROUP BY clause) SQLState: HY000 ErrorCode: 335544569 alguém sabe como me ajudar?