+ Responder ao Tópico



  1. Boa tarde,

    Estou com um pequeno problema e preciso de ajuda:

    Estou criando tipo uma regra no SQL...se alguém for me entregar algo de quinta a quarta, deverei pagar na segunda anterior...

    Por exemplo: tenho a seguinte semana: de 5 a 11 (Quinta a quarta )... o dia de entrega que cair em um desses dias,deverei pagar na segunda anterior, ou seja, dia 2 ...

    D S T Q Q S S
    2 5 6 7
    8 9 10 11

    Qual o problema:

    Fiz a seguinte Query:

    SELECT TOP 1 DATA_CALENDARIO
    FROM CALENDARIO
    WHERE DATA_CALENDARIO < '20090218'
    AND DIA_SEMANA_CALENDARIO = CASE
    WHEN (SELECT TOP 1 DIA_SEMANA_CALENDARIO FROM CALENDARIO WHERE DATA_CALENDARIO = '20090218') = 4 OR
    (SELECT TOP 1 DIA_SEMANA_CALENDARIO FROM CALENDARIO WHERE DATA_CALENDARIO = '20090218') = 5 OR
    (SELECT TOP 1 DIA_SEMANA_CALENDARIO FROM CALENDARIO WHERE DATA_CALENDARIO = '20090218') = 6 OR
    (SELECT TOP 1 DIA_SEMANA_CALENDARIO FROM CALENDARIO WHERE DATA_CALENDARIO = '20090218') = 7 OR
    (SELECT TOP 1 DIA_SEMANA_CALENDARIO FROM CALENDARIO WHERE DATA_CALENDARIO = '20090218') = 1 OR
    (SELECT TOP 1 DIA_SEMANA_CALENDARIO FROM CALENDARIO WHERE DATA_CALENDARIO = '20090218') = 2 OR
    (SELECT TOP 1 DIA_SEMANA_CALENDARIO FROM CALENDARIO WHERE DATA_CALENDARIO = '20090218') = 3
    THEN 1 --JOGA PARA A SEGUNDA ANTERIOR
    END
    AND EXISTS (SELECT DATA_CALEND FROM CALEND WHERE DATA_CALEND = '20090218')
    ORDER BY DATA_CALEND DESC


    O problema é: entrar com uma data de 5 a 9, tudo bem, ele traz o dia 2, porém, se eu entrar com 10 ou 11, ele traz o dia 9, sendo que eu quero trazer o dia 2.

    Como que eu poderia fazer???

    Agradeço a quem tiver paciência e puder me ajudar!

    Sds,
    Última edição por lemke; 16-01-2009 às 19:36.

  2. Operações com datas sempre foram chatas de se tratar e normalmente nem sempre os SGBD's conseguem contemplar tudo que nós queremos fazer de maneira simples com suas implementações do padrão SQL.

    Eu acho que talvez seja melhor controlar isso na sua aplicação, ao invés de no banco. Alguns frameworks e linguagens como Ruby On Rails, CakePHP e PHP já possuem funções para esse tipo de coisa.

    Um abraço!



  3. É, eu não gosto de nada que envolva datas ao tratar de DB, é trabalhoso à beça...

    Obrigada pela orientação, acho que ate o final da noite eu vou conseguir resolver...


    Um abraço!
    Última edição por lemke; 23-01-2009 às 17:21.






Tópicos Similares

  1. Duvida na criacao de regras p/ firewall
    Por Good_speed no fórum Redes
    Respostas: 3
    Último Post: 03-09-2008, 19:41
  2. Criação de diretório com PHP
    Por Cassus no fórum Linguagens de Programação
    Respostas: 3
    Último Post: 09-09-2003, 14:27
  3. Problema na Criação de .PDF
    Por no fórum Servidores de Rede
    Respostas: 1
    Último Post: 02-09-2003, 09:30
  4. Sobreposição de regras
    Por no fórum Servidores de Rede
    Respostas: 5
    Último Post: 13-03-2003, 11:30
  5. script para criação de contas
    Por no fórum Linguagens de Programação
    Respostas: 1
    Último Post: 08-02-2003, 16:08

Visite: BR-Linux ·  VivaOLinux ·  Dicas-L