Jump to content
luiscastro

Instrução sql "devolve data em que foi atingido dado valor"

Recommended Posts

luiscastro

Malta.....preciso mesmo de uma ajudinha nisto.....ainda não consegui!

Share this post


Link to post
Share on other sites
Caça

Faz um Count na tabela Linha_Venda onde o ID do fármaco é o ID X e agrupa por Ano, Mês, Dia da tabela Venda.

Depois filtra novamente a query de modo a que o valor do count seja maior ou igual a 10


Pedro Martins

Não respondo a duvidas por PM

Share this post


Link to post
Share on other sites
luiscastro

já experimentei o k dizes mas não resulta certo....Devo estar a fazer algo mal no que me disseste....

Posta o código assim eu testo e digo o resultado....

Desde já obrigado pela atenção

Share this post


Link to post
Share on other sites
luiscastro

Mas qual é a tua duvida ou dificuldade?

É que não consigo mesmo criar código que me devolva a data pretendida na pergunta.....Não consigo

Share this post


Link to post
Share on other sites
Rui Carlos

já experimentei o k dizes mas não resulta certo....Devo estar a fazer algo mal no que me disseste....

Posta o código assim eu testo e digo o resultado....

Desde já obrigado pela atenção

E que tal postares tu o código, e pessoal ver o que está mal?

O objectivo do fórum não é exactamente resolver os problemas pelos outros.

Share this post


Link to post
Share on other sites
luiscastro

Malta, o problema é que eu não tenho mesmo ideia de como fazer este código....Se não postava a minha ideia e via-mos o que estava mal....mas eu nãoi sei por onde a começar......

Share this post


Link to post
Share on other sites
luiscastro

pronto para começarmos....

Estou neste ponto:

select SUM(LINHA_VENDA.QTD) as QTDX, VENDA.DATA_VENDA
from LINHA_VENDA, VENDA, LOTE, FARMACO
where LOTE.ID_LOTE = LINHA_VENDA.ID_LOTE
and LOTE.ID_FARMACO = 3
Group by VENDA.DATA_VENDA

Devolve:

QTDX      DATA_VENDA

13            2011.06.10

13            2011.07.11

13            2011.08.11

-------------------------------------------------

Só para verem quais as quantidades, por ordem, que estão na tabela para o farmaco com id 3:

QTDX      DATA_VENDA

2            2011.06.10

6            2011.07.11

5            2011.08.11

----------------------------------------------------

Eu precisava que me devolvesse:

QTDX      DATA_VENDA

2              2011.06.10

8              2011.07.11

13            2011.08.11

Entendem, prescisava que me fizesse tipo uma soma incremental das quantidades, ir juntando linha a linha para a data em questão, assim depois era só pegar as datas com qtd >=10 e tinha a resposta á pergunta.

Share this post


Link to post
Share on other sites
extint

Já que o teu objectivo é criar um procedure, podes fazer o seguinte:

Primeiro gravas para um cursor todas as vendas feitas do farmaco 3 ordenadas pela data.

Depois vais ler esse mesmo cursor lendo venda a venda mas não esquecer de fazer igualmente a contagem das mesmas... quando chegares a um count=10 retornas a data.

Em principio será mais facil fazeres assim.

Share this post


Link to post
Share on other sites
Caça

Tenta assim

SELECT *
FROM (
SELECT SUM(LINHA_VENDA.QTD) AS QTDX, VENDA.DATA_VENDA
FROM LINHA_VENDA, VENDA, LOTE, FARMACO
WHERE LOTE.ID_LOTE = LINHA_VENDA.ID_LOTE
AND LOTE.ID_FARMACO = 3
GROUP BY VENDA.DATA_VENDA) AS Valor
WHERE Valor.QTDX >= 10

EDIT: Não estás a indicar nenhuma relação com a tabela Venda


Pedro Martins

Não respondo a duvidas por PM

Share this post


Link to post
Share on other sites
luiscastro

vou testar o teu código.....eu consegui fazer com uma função.... Vou agora apresentar o trabalho.....eu já posto a dizer se funcionou ou não....

Share this post


Link to post
Share on other sites
luiscastro

não funcionou com o código que me passaste....

resolvi isto implementando um ciclo, mas o professor da cadeira disse que era possivel fazer com um simples update...não me perguntem como....

A propósito tive 16 no trabalho...apenas tive problemas com as triggers de replicação entre as tabelas, fiz-as mal, pelo que percebi o erro era que elas entravam em ciclo infinito, ou seja, ao fazer replicação na BaseDados B, a BaseDados B tb fazia na A, e por a i fora.....se alguem souber fazer as triggers direitas diga.....posso no futuro precisar....se quiserem eu posto o código de uma triiger de replicação para vermos o que estou a fazer mal....

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.