|
|
Postada em 08/12/2005 08:28 hs
Podem me ajudar nesse meu SELECT, estou precisando trazer dois registros ou um, tem como fazer isso com apenas uma consulta?
strSQL = "SELECT " strSQL = strSQL & "m.tmes_qtd, m.tmes_hini, " strSQL = strSQL & "p.pmt_leg " strSQL = strSQL & "FROM " strSQL = strSQL & "tblTMes m, tblProgMesT p " strSQL = strSQL & "WHERE " strSQL = strSQL & "m.tmes_nreg = " & TempReg & " AND " strSQL = strSQL & "m.tmes_mes = " & Mid(strDtSem(y), 4, 2) & " AND " '30/"11"/2005 strSQL = strSQL & "m.tmes_mes = " & Mid(strDtSem(ComboSemana.ListIndex), 4, 2) & " AND " '01/"12"/2005 strSQL = strSQL & "m.tmes_ano = " & Right(strDtSem(y), 4) & " AND " '30/11/"2005" strSQL = strSQL & "m.tmes_ano = " & Right(strDtSem(ComboSemana.ListIndex), 4) & " AND " '01/12/"2005" strSQL = strSQL & "p.pmt_nreg = " & TempReg & " AND " strSQL = strSQL & "p.pmt_data = #" & strDtSem(y) & "# AND " '30/11/2005 strSQL = strSQL & "p.pmt_data = #" & strDtSem(ComboSemana.ListIndex) & "#" '01/12/2005
No caso, com o operador AND o recordcount=0 se for com o OR ele me traz tudo recordcount=918.
Abraços, Marcelo Tamanini
|
|
|
|
|
|
|
|
Postada em 08/12/2005 15:08 hs
Tamanini, boa tarde.. De muitas maneiras posso tentar de ajudar.. Um Select distinct trás apenas um registro distinto, eliminando qualquer duplicidade (não sei se este o seu caso). O comando rowid = 1 trás apenas o primeiro registro que satisfaça a condição.. Tudo vai depender dá logica que voce deseja e o tipo de banco utilizado.. Pode dar mas detalhes..
|
|
|
|
|
|
Postada em 09/12/2005 06:38 hs
Como ficaria o SELECT com o comando rowid=1? Eu preciso trazer até dois registros no qual cada registro irei fazer um calculo de horario de turnos, tipo: registro mes_qtd mes_hini pmt_leg 1 3 06:35 BDC 2 4 08:00 ACD
Através da quantidade de turno, tipo o 1º = 3: (24 / 3) = 8 horas cada Começa as 06:35, então: 06:35 até 14:35 - operador B 14:35 até 22:35 - operador D 22:35 até 06:35 - operador C
Eu tenho sempre que buscar a data selecionada e o dia anterior para assim mostrar no form o histórico de turnos do dia, por exemplo: 00:00 até 08:00 - operador C (completando do dia anterior) 08:00 até 14:00 - operador A 14:00 até 20:00 - operador C 20:00 até 23:59 - operador D
É isso!
[]'s, Marcelo Tamanini
|
|
|
|
|
|
Postada em 09/12/2005 06:59 hs
só uma dica: tenta montar esta consulta 1º no editor SQL do Access ou SQL Server ou BD q vc tá usando. tb. tente: - fazer algo com group by p/ ajuntar os registros desejados - select top QTDE para trazer apenas os 1ºs registros que satisfazeram tais condições - talvez até subselects possam ajudar no mais consulte o books online(help) do sql server que explica tim por tim as sintaxe q eu falei boa sorte 
http://www.vilmarbro.com.br
|
|
|
|
|
|
Postada em 09/12/2005 08:10 hs
Tentei assim, mas só traz um registro e ainda errado:
SELECT m.tmes_qtd, m.tmes_hini, p.pmt_leg FROM tblTMes m, tblProgMesT p WHERE m.tmes_nreg = 1 AND m.tmes_mes = 12 AND m.tmes_ano = 2005 AND p.pmt_nreg = 1 AND p.pmt_data = #04/12/2005# UNION SELECT m.tmes_qtd, m.tmes_hini, p.pmt_leg FROM tblTMes m, tblProgMesT p WHERE m.tmes_nreg = 1 AND m.tmes_mes = 12 AND m.tmes_ano = 2005 AND p.pmt_nreg = 1 AND p.pmt_data = #05/12/2005#;
|
|
|
|
|
|
Postada em 09/12/2005 10:06 hs
Consegui, fiz assim:
SELECT m.tmes_qtd, m.tmes_hini, p.pmt_leg FROM tblTMes m, tblProgMesT p WHERE m.tmes_nreg = 1 AND m.tmes_mes = 12 AND m.tmes_ano = 2005 AND p.pmt_nreg = 1 AND p.pmt_data = #12/04/2005# UNION SELECT m.tmes_qtd, m.tmes_hini, p.pmt_leg FROM tblTMes m, tblProgMesT p WHERE m.tmes_nreg = 1 AND m.tmes_mes = 12 AND m.tmes_ano = 2005 AND p.pmt_nreg = 1 AND p.pmt_data = #12/05/2005#;
Mas está trazendo os dados do dia 05 e depois do dia 04, em vez de ser crescente, já tentei colocar o ORDER BY p.pmt_data no final, mas gera erro.
[ ]'s, Marcelo Tamanini
|
|
|
|
|