Array
(
)

Utilizar o Penultimo e o Ultimo registros.

Alex Lekao
   - 05 jul 2011

Ola Boa tarde!!!   Para variar um pouco estou com problemas com um script que montei, eu preciso listar os itens que nao tiveram vendas em um determinado periodo em uma loja, e preciso que este item aparece com as datas da ultima e a penultima data de venda.   Ja pesquisei na net e achei algumas coisas muito estranhas e nenhuma funcionou.   o script que montei eh o seguinte:  

SELECT

S.CODSTK AS CODIGO,

S.CODFAB AS CODFAB,

S.MARCA AS MARCA,

(SELECT TOP 1 CONVERT(VARCHAR(10),I.DATEMI,103) FROM LOJA1.DBO.ITEMVDA AS I WHERE I.CODSTK

Emerson
   - 05 jul 2011


Citação:
Ola Boa tarde!!!   Para variar um pouco estou com problemas com um script que montei, eu preciso listar os itens que nao tiveram vendas em um determinado periodo em uma loja, e preciso que este item aparece com as datas da ultima e a penultima data de venda.  

do que você precisa exatamente?
achei o enunciado um pouco estranho. você quer os itens que não venderam num período???

eu já vi pesquisas para saber se um produto está encalhado e a quanto tempo não vende, mas isso não implica num período e, sim, numa data limite. por exemplo: quais produtos estão parados há pelo menos 15 dias sem qualquer movimentação? ou: preciso fazer uma mega promoção com os produtos que estão há mais de 30 dias sem qualquer venda.

mas raramente num período... é para quê? para cálculo de sazonalidade?

0
|
0

Alex Lekao
   - 05 jul 2011

Ola Emerson, boa tarde!!!   Obrigado mais uma vez pela sua colaboracao.   Entao o relatorio foi uma solicitacao do diretor aqui da empresa, ele ira informar uma quantidade de dias mesmo, eu utilizei o periodo no script para poder validar as datas que preciso apresentar, qua faz parte da solicitacao dele, a ultima e a penultima venda do produto, ja tenho outro relatorios que fiz onde mostram as quantidades de vendas do produtos, medias de vendas, etc, onde poderemos trabalhar com a sazonalidade do item.   O problema especificamente eh apresentar as duas ultimas datas do item, ultima e penultima data de venda.   Tentei usar algumas maneiras de fazer isso mas nenhuma das que tentei derei certo, pensei em fazer subselects mas nao consegui montar uma subselect usando top dentro da outra.   Como disse o periodo que utilizei no script foi so para validar as datas, o relatorio sera baseado em um parametro que o usuario ira informar em dias, por exemplo 90 dias, etc.   Fiz uma seria de pesquisas a respeito de como usar o penultimo, pq o ultimo ja esta no script de qqr forma.   Mais uma vez, obrigado pela sua ajuda.   Abraco.   Alex - Lekao

0
|
0

Emerson
   - 05 jul 2011

tente com este:

SELECT
  *,
  (SELECT CONVERT(VARCHAR(10),COALESCE(MAX(I.DATEMI),'1.1.1900'),103)
   FROM LOJA1.DBO.ITEMVDA AS I
   INNER JOIN LOJA1.DBO.REQVDA AS R ON (R.SID = I.SID AND R.TIPOREQ = 'VD')
   WHERE I.CODSTK = TAB.CODIGO AND I.DATAEMI < TAB.ULTIMA) AS PENULTIMA
FROM
(SELECT
   S.CODSTK AS CODIGO,
   S.CODFAB AS CODFAB,
   S.MARCA AS MARCA,
   CONVERT(VARCHAR(10),COALESCE(MAX(I.DATEMI),'1.1.1900'),103) AS ULTIMA
 FROM
   LOJA1.DBO.ITEMSTK AS S
 LEFT JOIN
   LOJA1.DBO.ITEMVDA AS I ON (I.CODSTK = S.CODSTK)
 LEFT JOIN
   LOJA1.DBO.REQVDA AS R ON (R.SID = I.SID)
 WHERE
   AND R.TIPOREQ = 'VD'
 GROUP BY
   S.CODSTK,S.CODFAB,S.MARCA
 HAVING
   MAX(I.DATEMI) < GetDate() - nNumeroDeDias
) TAB
ORDER BY
  CODSTK, CODFAB, MARCA

creio que deve funcionar da forma que você precisa.

0
|
0

Alex Lekao
   - 06 jul 2011

Ola Emerson, boa tarde!!!   Mais uma vez muito obrigado!!!   Pelo que conferi funcionou Certinho.   Agora vou so verificar o que consigo para usar apenas os registros de ultima venda e penultiva venda para um outro relatorio que estou montando, onde sera impresso todos os itens do estoque informando as duas ultimas vendas.   Mais uma vez, obrigado!!!   Abraco.   Alex - Lekao

0
|
0