CONSULTA SQL
preciso montar uma query que me traga 5 campos (codigo,qtde,valor,dta,nf) de uma tabela, mas preciso agrupar por grupo de codigo, montei uma, mas so consigo agrupar, se agrupar por todos os iten, preciso só por codigo.
Fera, posta mais detalhes do banco, e posta a query que voce montou...
Ate mais
Ate mais
sql = " select top 5 data,dtnf,doc,produto,codcor, sum(qtde) as wsqtde,sum (valor) as wsval from entradas "
sql = sql & " where produto = " & val(Mid(txtpro.Text, 1, 6)) & ""
sql = sql & " AND TIPO = 'E' "
'sql = sql & " order by dtnf desc "
sql = sql & " group by data,dtnf,doc,produto,codcor "
sql = sql & " order by dtnf desc "
Set Rs = New ADODB.Recordset
Rs.CursorLocation = adUseClient
Rs.Open sql, Cnn, adOpenForwardOnly, adLockReadOnly
If Not Rs.EOF Then
sql = sql & " where produto = " & val(Mid(txtpro.Text, 1, 6)) & ""
sql = sql & " AND TIPO = 'E' "
'sql = sql & " order by dtnf desc "
sql = sql & " group by data,dtnf,doc,produto,codcor "
sql = sql & " order by dtnf desc "
Set Rs = New ADODB.Recordset
Rs.CursorLocation = adUseClient
Rs.Open sql, Cnn, adOpenForwardOnly, adLockReadOnly
If Not Rs.EOF Then
para fazer o agrupamento você tem que colocar todos os campos do select no group by, a não ser que esses campos tenham alguma função de agregação.
ex: sum(), max(), min(), avg
os campos com essas funções não precisam ir no group by.
ex:
select codigo, max(qtde), max(valor), max(dta), max(nf) from entradas group by codigo
o problema é que os campos dentro das funções não é necessariamente só de uma linha.
todo campo que esta no select e não tem nenhuma função tem que aparecer no "group by", mas nem todos os campos que tem no "group by" tem q estar no select
ex: sum(), max(), min(), avg
os campos com essas funções não precisam ir no group by.
ex:
select codigo, max(qtde), max(valor), max(dta), max(nf) from entradas group by codigo
o problema é que os campos dentro das funções não é necessariamente só de uma linha.
todo campo que esta no select e não tem nenhuma função tem que aparecer no "group by", mas nem todos os campos que tem no "group by" tem q estar no select
ola FUTURA
segundo o que vc precisa seria isso, que é ordenar por código né..
sql = " select"
sql = sql & " top 5 "
sql = sql & " data,"
sql = sql & " dtnf,"
sql = sql & " doc,"
sql = sql & " produto,"
sql = sql & " codcor,"
sql = sql & " sum(qtde) as wsqtde,"
sql = sql & " sum (valor) as wsval"
sql = sql & " from"
sql = sql & " entradas"
sql = sql & " where"
sql = sql & " produto = " & val(Mid(txtpro.Text, 1, 6)) & ""
sql = sql & " AND TIPO = 'E' "
sql = sql & " group by"
sql = sql & " data,"
sql = sql & " dtnf,"
sql = sql & " doc,"
sql = sql & " produto,"
sql = sql & " codcor"
sql = sql & " order by"
sql = sql & " codcor desc"
Set Rs = New ADODB.Recordset
Rs.CursorLocation = adUseClient
Rs.Open sql, Cnn, adOpenForwardOnly, adLockReadOnly
If Not Rs.EOF Then
espero que o ajude...ok
segundo o que vc precisa seria isso, que é ordenar por código né..
sql = " select"
sql = sql & " top 5 "
sql = sql & " data,"
sql = sql & " dtnf,"
sql = sql & " doc,"
sql = sql & " produto,"
sql = sql & " codcor,"
sql = sql & " sum(qtde) as wsqtde,"
sql = sql & " sum (valor) as wsval"
sql = sql & " from"
sql = sql & " entradas"
sql = sql & " where"
sql = sql & " produto = " & val(Mid(txtpro.Text, 1, 6)) & ""
sql = sql & " AND TIPO = 'E' "
sql = sql & " group by"
sql = sql & " data,"
sql = sql & " dtnf,"
sql = sql & " doc,"
sql = sql & " produto,"
sql = sql & " codcor"
sql = sql & " order by"
sql = sql & " codcor desc"
Set Rs = New ADODB.Recordset
Rs.CursorLocation = adUseClient
Rs.Open sql, Cnn, adOpenForwardOnly, adLockReadOnly
If Not Rs.EOF Then
espero que o ajude...ok
Tópico encerrado , respostas não são mais permitidas