Fórum Sintaxe busca SQL - dúvida #5286

02/05/2009

0

Boa Noite Senhores,

Tenho duas tabelas:

CREATE TABLE [pcprod] (
  [codigo] NVARCHAR(20) NOT NULL ON CONFLICT ABORT PRIMARY KEY,
  [descr] NVARCHAR(40),
  [marca] NVARCHAR(20),
  [codigoint] NVARCHAR(20),
  [preco] NUMERIC(5, 7),
  [preco2] NUMERIC(5, 7));



CREATE TABLE [pcdesc] (
  [codigo] NVARCHAR(20),
  [qtde] NUMERIC(5, 6),
  [loja] INTEGER,
  [secao] INTEGER,
  [coletor] INTEGER,
  [hora] NVARCHAR(8),
  [dia] NVARCHAR(8),
  [chave] GUID PRIMARY KEY);


A tabela "pcdesc" tem o resultado das leituras realizadas em um BALANÇO. Na "pcprod" tenho o cadastro
dos produtos

"SELECT SUM(qtde) AS cont, codigo FROM pcdesc GROUP BY codigo"

Com o "Select" acima  tenho como resultado: a quantidade em "cont"  de cada "codigo".


Duvida:

Preciso que no mesmo "SELECT" tenha a "MARCA" e a "DESCRIÇÃO"...

Como faço???

Obrigado,

Ernany
Ernany

Ernany

Responder

Posts

02/05/2009

[devmedia .net]

Opa, blz Ernany. para isso vc deverá incluir suas colunas no retorno do select e colocá-las também no group by, lembrando que serão agrupadas por codigo, marca e descrição.. Mas não se coloca campos como descrição no agrupamento a não ser que eles realmente sejam os mesmos para os produtos que quer "juntar". Caso o campo descrição seja diferente ele trará várias linhas e não exatamente só que precisa.     SELECT SUM(qtde) AS cont, marcar, descricao FROM pcdesc GROUP BY codigo, marcar, descricao   No aguardo..   Abraços     Carlos Jr
Responder

Gostei + 0

02/05/2009

Ernany

Boa noite....


Não funcionou....

Esse select funciona:
"SELECT SUM(qtde) AS cont, codigo FROM pcdesc GROUP BY codigo"


Inicialmente eu carrego a tabela "pcprod" com todas as informações.

Depois vou fazendo leituras dos produtos consultando a tabela "pcprod" e gravando em "pcdesc"

Preciso da Informação da Descrição e da Marca, pois vou fazer uma impressão numa impressora.

Como faço????  Estou usando VB2005 .NET.


Obigado,

Ernany

'***********************************************************
 Private Sub GeraRelatorioZebraPronto()
        Dim dr As Data.SQLite.SQLiteDataReader
        Dim BdMain As New ClsBD
        Dim ContLinhas As Integer = 0
        Dim indice As Integer = 1
        Dim indiceLinha As Integer = 119  'Somar a constante de 48


        BdMain.AbreBD()

        dr = BdMain.SQLRetornaDR("SELECT SUM(qtde) AS cont, codigo FROM pcdesc GROUP BY codigo")
        While dr.Read
            ContLinhas = ContLinhas + 1
            SerialPortLeitura.WriteLine("T 2 0 7 " & indiceLinha & " " & indice & "- ") 'Indice
            SerialPortLeitura.WriteLine("T 2 0 96 " & indiceLinha & " " & dr("codigo")) 'Codigo
            SerialPortLeitura.WriteLine("T 2 0 403 " & indiceLinha & " " & dr("cont")) 'Quantidade
        dr.Close()
Responder

Gostei + 0

03/05/2009

[devmedia .net]

Olá Ernany, estranho, o que eu te enviei deveria funcionar.. o código está correto..   SELECT SUM(qtde) AS cont, codigo, marca, descricao FROM pcdesc GROUP BY codigo, marca, descricao   o que é "não funcionou", preciso saber o que ocorreu... Essa query resolve seu problema,como te expliquei, ele vai agrupar pelos campos do group by desde que sejam iguais...   Aguardo seu retorno..   Grande abraço   Carlos Jr
Responder

Gostei + 0

03/05/2009

Ernany

Boa tarde Carlos,

Na tabela "PCDESC" não tem os campos "MARCA" e "DESCR".  Esses campos tem em outra
tabela que é a "PCPROD". verifique no primeiro que lhe enviei...

Por isso que não está funcionando.

Então, o que vc acha???

Obrigado,

Ernany

Responder

Gostei + 0

03/05/2009

[devmedia .net]

Ernany, mandei a query como ela deve ficar.. caso seus campos sejam em outra tabela você tera que fazer um join     * Abaixo segue a query que deve ser feita, como ele deva ser feita... * Altere-a da maneira que necessitar no seu código   SELECT SUM(pcdesc.qtde) AS cont, pcdesc.codigo, pcdesc.marca, pcdesc.descricao FROM pcdesc JOIN pcprod ON pcprod.codigo = pcdesc.codigo GROUP BY pcprod.codigo, pcdesc.marca, pcdesc.descricao   OBS: Observe os nomes das tabelas antes dos campos, pois determinam a tabela de origem.   No aguardo, Abraços   Carlos Jr
Responder

Gostei + 0

04/05/2009

Ernany

Boa Noite,

Assim ficou a query,


SELECT SUM(pcdesc.qtde) AS cont, pcdesc.codigo, pcprod.marca AS Marc, pcprod.descr AS descricao
FROM pcdesc
JOIN pcprod ON
pcprod.codigoint = pcdesc.codigo
GROUP BY pcdesc.codigo, pcprod.marca, pcprod.descr

Perguntas: Vc programa em VB2005 .NET??? O como está o seu tempo??? Qual o custo da sua hora??

Obrigado,

Ernany
Responder

Gostei + 0

04/05/2009

Devmedia

Ernany,
em que essas informações são relevantes para a solução desse chamado?
Responder

Gostei + 0

04/05/2009

Ernany


Boa tarde,

Para este chamado nenhuma importância. Tenho outro projeto que preciso dar andamento,
e provavelmente vou precisar de ajuda. Com quem eu falo a este respeito?


Obrigado,

Ernany

Responder

Gostei + 0

05/05/2009

Devmedia

Ernany,
 a consultoria funciona justamente para resolver os seus problemas. As dúvidas q vc encontrar durante esse seu projeto vc pode postar que os nossos consultores vão te ajudar no que for posssível.

Responder

Gostei + 0

05/05/2009

Ernany


Obrigado.

Ernany
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar