Ver Mensaje Individual
  #4 (permalink)  
Antiguo 29/08/2007, 12:37
BACH
 
Fecha de Ingreso: agosto-2006
Mensajes: 99
Antigüedad: 17 años, 10 meses
Puntos: 0
Re: error en consulta con Sql

Gracias por el interes

la sentencia es bastante extensa, se hacen joins entre varias tablas, aca esta:

SELECT sum(INV_MOVIMIENTO.debitos-INV_MOVIMIENTO.creditos) as saldo_anterior,
INV_REFERENCIA.codnivel, INV_REFERENCIA.nomnivel, INV_REFERENCIA.SALDO,
INV_REFERENCIA.codtipo, INV_REFERENCIA.codgrupo, INV_REFERENCIA.codsubgrupo,
INV_MOVIMIENTO.val_costo,INV_MOVIMIENTO.tipodocu, INV_MOVIMIENTO.numdocu,
INV_MOVIMIENTO.fecha, INV_MOVIMIENTO.codnivel AS codnivel_mov,
INV_MOVIMIENTO.nomnivel AS nomnivel_mov, INV_MOVIMIENTO.debitos,
INV_MOVIMIENTO.creditos, TIP_COMPROBANTE.NOMBDOCU, TIP_COMPROBANTE.TIPODOCU
AS tipodocu_tip_comp,inv_T_Tipo.nomtipo, inv_T_Grupo.nomgrupo,
inv_T_subgrupo.nomsubgrupo, inv_T_Grupo.codgrupo AS codigo_grupo,
inv_T_Grupo.codtipo AS cod_tipo, inv_T_subgrupo.codtipo AS Expr3,
inv_T_subgrupo.codgrupo AS Expr4, inv_T_subgrupo.codsubgrupo AS Expr5,
inv_T_Tipo.codtipo AS Expr6 FROM INV_REFERENCIA INNER JOIN INV_MOVIMIENTO ON
INV_REFERENCIA.codnivel = INV_MOVIMIENTO.codnivel INNER JOIN inv_T_Tipo ON
INV_REFERENCIA.codtipo = inv_T_Tipo.codtipo INNER JOIN inv_T_Grupo ON
INV_REFERENCIA.codtipo = inv_T_Grupo.codtipo AND
INV_REFERENCIA.codgrupo = inv_T_Grupo.codgrupo AND
inv_T_Tipo.codtipo = inv_T_Grupo.codtipo INNER JOIN inv_T_subgrupo
ON INV_REFERENCIA.codtipo = inv_T_subgrupo.codtipo AND
INV_REFERENCIA.codgrupo = inv_T_subgrupo.codgrupo AND
INV_REFERENCIA.codsubgrupo = inv_T_subgrupo.codsubgrupo AND
inv_T_Grupo.codtipo = inv_T_subgrupo.codtipo AND inv_T_Grupo.codgrupo =
inv_T_subgrupo.codgrupo INNER JOIN TIP_COMPROBANTE ON
INV_MOVIMIENTO.tipodocu = TIP_COMPROBANTE.TIPODOCU
where fecha between CONVERT(smalldatetime,'2007/1/13 00:00:00.00' ,120) and
CONVERT(smalldatetime,'2007/1/13 00:00:00.00' ,120)
group by INV_REFERENCIA.codnivel, INV_REFERENCIA.nomnivel,INV_REFERENCIA.SALDO,
INV_REFERENCIA.codtipo, INV_REFERENCIA.codgrupo, INV_REFERENCIA.codsubgrupo,
INV_MOVIMIENTO.tipodocu, INV_MOVIMIENTO.numdocu, INV_MOVIMIENTO.fecha,
INV_MOVIMIENTO.codnivel, INV_MOVIMIENTO.nomnivel,INV_MOVIMIENTO.debitos,
INV_MOVIMIENTO.creditos,TIP_COMPROBANTE.NOMBDOCU,T IP_COMPROBANTE.TIPODOCU,
INV_MOVIMIENTO.val_costo,inv_T_Tipo.nomtipo,inv_T_ Grupo.nomgrupo,
inv_T_subgrupo.nomsubgrupo,inv_T_Grupo.codgrupo,in v_T_Grupo.codtipo,
inv_T_subgrupo.codtipo, inv_T_subgrupo.codgrupo, inv_T_subgrupo.codsubgrupo,
inv_T_Tipo.codtipo order by INV_MOVIMIENTO.codnivel,INV_MOVIMIENTO.fecha


Es una conexion OleDB y la funcion ExecuteDataSet es la sgte:
Public Function ExecuteDataset(ByVal commandType As CommandType, ByVal commandText As String) As DataSet

Try
If Mid(servidorProp, 1, 1) = "1" Then''Para sql server
PrepareCommand(cmd, commandType, commandText)
End If
If Mid(servidorProp, 1, 1) = "2" Then''Para Oracle
PrepareCommandOra(cmdOra, commandType, commandText)
End If

Dim ds As DataSet = New DataSet
Dim da As SqlDataAdapter = New SqlDataAdapter(cmd)
Dim daOra As OleDbDataAdapter = New OleDbDataAdapter(cmdOra)

If Mid(servidorProp, 1, 1) = "1" Then
da.Fill(ds)
da.FillSchema(ds, SchemaType.Source)

End If
If Mid(servidorProp, 1, 1) = "2" Then
daOra.Fill(ds)
daOra.FillSchema(ds, SchemaType.Source)

End If
Return ds
Catch e As System.Exception
''Throw e
Throw New Exception("Error Sql(ExecuteDataset)" & Chr(13) & Chr(10) & commandText & Chr(13) & Chr(10) & e.Message)

End Try
End Function