Sintaxe busca SQL - dúvida
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
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
Curtidas 0
Respostas
[devmedia .net]
02/05/2009
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
GOSTEI 0
Ernany
02/05/2009
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()
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()
GOSTEI 0
[devmedia .net]
02/05/2009
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
GOSTEI 0
Ernany
02/05/2009
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
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
GOSTEI 0
[devmedia .net]
02/05/2009
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
GOSTEI 0
Ernany
02/05/2009
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
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
GOSTEI 0
Devmedia
02/05/2009
Ernany,
em que essas informações são relevantes para a solução desse chamado?
em que essas informações são relevantes para a solução desse chamado?
GOSTEI 0
Ernany
02/05/2009
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
GOSTEI 0
Devmedia
02/05/2009
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.
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.
GOSTEI 0
Ernany
02/05/2009
Obrigado.
Ernany
GOSTEI 0