Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » SQL Server »

Problema con consulta SQL

Estas en el tema de Problema con consulta SQL en el foro de SQL Server en Foros del Web. ya lo he puesto y me da error: Msg 170, Level 15, State 1, Line 1 Line 1: Incorrect syntax near '.'....

  #31 (permalink)  
Antiguo 21/06/2010, 08:18
 
Fecha de Ingreso: noviembre-2007
Mensajes: 504
Antigüedad: 17 años, 2 meses
Puntos: 2
Respuesta: Problema con consulta SQL

ya lo he puesto y me da error:
Msg 170, Level 15, State 1, Line 1
Line 1: Incorrect syntax near '.'.
  #32 (permalink)  
Antiguo 21/06/2010, 10:12
Avatar de flaviovich  
Fecha de Ingreso: agosto-2005
Ubicación: Lima, Peru
Mensajes: 2.951
Antigüedad: 19 años, 5 meses
Puntos: 39
Respuesta: Problema con consulta SQL

A ver muestra como lo has puesto?
__________________
No repitamos temas, usemos el Motor de busquedas
Plantea bien tu problema: Ayúdanos a ayudarte.
  #33 (permalink)  
Antiguo 21/06/2010, 10:38
 
Fecha de Ingreso: noviembre-2007
Mensajes: 504
Antigüedad: 17 años, 2 meses
Puntos: 2
Respuesta: Problema con consulta SQL

Flaviovich!! te extrañe :$ xD
Mirad pongo esto:
Código SQL:
Ver original
  1. SELECT h.hora,h.marca,h.codoptima,h.target,P.CODOPTIMA,O.CODIGO,p.hora,p.peso,p.vaso,p.fecha,o.linea,o.tubo h.codoptima AS codoptimaT INTO #temp
  2. FROM pesos AS p, optimas AS o,htargets AS h WHERE o.codigo = p.codOptima AND o.linea = 'L01S' AND o.tubo LIKE '%' AND p.fecha BETWEEN '2010-06-18 09:00' AND '2010-06-18 09:30'
  3. AND p.hora='9:00 - 9:30' AND h.codoptima = o.codigo AND h.hora='9:00 - 9:30'
  4.  SELECT *,(SELECT COUNT(1)total FROM #temp) FROM #temp
http://omploader.org/vNHBncA
Saludos

Última edición por th3r0rn; 21/06/2010 a las 10:49
  #34 (permalink)  
Antiguo 21/06/2010, 10:59
Avatar de flaviovich  
Fecha de Ingreso: agosto-2005
Ubicación: Lima, Peru
Mensajes: 2.951
Antigüedad: 19 años, 5 meses
Puntos: 39
Exclamación Respuesta: Problema con consulta SQL

Con esto ya debe quedar.
Código SQL:
Ver original
  1. SELECT h.hora,h.marca,h.codoptima AS codoptimaT,h.target,P.CODOPTIMA,O.CODIGO,
  2. p.hora,p.peso,p.vaso,p.fecha,o.linea,o.tubo
  3. INTO #temp
  4. FROM pesos AS p, optimas AS o,htargets AS h
  5. WHERE o.codigo = p.codOptima AND o.linea = 'L01S'
  6. AND o.tubo LIKE '%' AND p.fecha BETWEEN '2010-06-18 09:00' AND '2010-06-18 09:30'
  7. AND p.hora='9:00 - 9:30' AND h.codoptima = o.codigo AND h.hora='9:00 - 9:30'
  8.  
  9. SELECT *,(SELECT COUNT(1)total FROM #temp) FROM #temp
__________________
No repitamos temas, usemos el Motor de busquedas
Plantea bien tu problema: Ayúdanos a ayudarte.
  #35 (permalink)  
Antiguo 21/06/2010, 11:45
 
Fecha de Ingreso: noviembre-2007
Mensajes: 504
Antigüedad: 17 años, 2 meses
Puntos: 2
Respuesta: Problema con consulta SQL

hola, aun da error:
Msg 2705, Level 16, State 3, Line 1
Column names in each table must be unique. Column name 'hora' in table '#temp' is specified more than once.
  #36 (permalink)  
Antiguo 21/06/2010, 12:23
Avatar de flaviovich  
Fecha de Ingreso: agosto-2005
Ubicación: Lima, Peru
Mensajes: 2.951
Antigüedad: 19 años, 5 meses
Puntos: 39
Respuesta: Problema con consulta SQL

Bueno, es el mismo problema. Haz como con la otra columna: pon un alias h.hora as hora1
__________________
No repitamos temas, usemos el Motor de busquedas
Plantea bien tu problema: Ayúdanos a ayudarte.
  #37 (permalink)  
Antiguo 21/06/2010, 14:55
 
Fecha de Ingreso: noviembre-2007
Mensajes: 504
Antigüedad: 17 años, 2 meses
Puntos: 2
Respuesta: Problema con consulta SQL

flaviovich Muchas Gracias!!! pero como m puedop consultar ese campo temporal? es decir el que me muestra el resultado numerico, lo necesito imprimir en una app web con ASP pero no se como mandar a llamar a este campo :(

Última edición por th3r0rn; 21/06/2010 a las 15:33
  #38 (permalink)  
Antiguo 21/06/2010, 15:37
Avatar de flaviovich  
Fecha de Ingreso: agosto-2005
Ubicación: Lima, Peru
Mensajes: 2.951
Antigüedad: 19 años, 5 meses
Puntos: 39
Respuesta: Problema con consulta SQL

Ponle un alias, y lo llamas desde tu asp por ese alias.
__________________
No repitamos temas, usemos el Motor de busquedas
Plantea bien tu problema: Ayúdanos a ayudarte.
  #39 (permalink)  
Antiguo 21/06/2010, 15:55
 
Fecha de Ingreso: noviembre-2007
Mensajes: 504
Antigüedad: 17 años, 2 meses
Puntos: 2
Respuesta: Problema con consulta SQL

Hola asi quedo pero me sgue marcando no column name:
Código SQL:
Ver original
  1. SELECT h.hora AS hora1,h.marca,h.codoptima AS codoptimaT,h.target,P.CODOPTIMA,O.CODIGO,
  2. p.hora,p.peso,p.vaso,p.fecha,o.linea,o.tubo
  3. INTO #che
  4. FROM pesos AS p, optimas AS o,htargets AS h
  5. WHERE o.codigo = p.codOptima AND o.linea = 'L01S'
  6. AND o.tubo LIKE '%' AND p.fecha BETWEEN '2010-06-21 08:00' AND '2010-06-21 08:30'
  7. AND p.hora='8:00 - 8:30' AND h.codoptima = o.codigo AND h.hora='8:00 - 8:30'
  8.  
  9. SELECT *,(SELECT COUNT(1)total FROM #che AS totality) FROM #che
Dejo una csaptura en el siguiente link http://omploader.org/vNHBrbQ
  #40 (permalink)  
Antiguo 21/06/2010, 16:32
Avatar de flaviovich  
Fecha de Ingreso: agosto-2005
Ubicación: Lima, Peru
Mensajes: 2.951
Antigüedad: 19 años, 5 meses
Puntos: 39
Respuesta: Problema con consulta SQL

Cambia esta parte:
Código sql:
Ver original
  1. SELECT *,(SELECT COUNT(1)total FROM #che) AS totality FROM #che
__________________
No repitamos temas, usemos el Motor de busquedas
Plantea bien tu problema: Ayúdanos a ayudarte.
  #41 (permalink)  
Antiguo 22/06/2010, 09:38
 
Fecha de Ingreso: noviembre-2007
Mensajes: 504
Antigüedad: 17 años, 2 meses
Puntos: 2
Respuesta: Problema con consulta SQL

Hola, muchas gracias ya me muestra los datos el SQL server y ya asigno el nombre a la variable Ahora solo tengo un problema ASP por el objeto RecordSet que es para seleccion y muestra de registros, el problema que segun veo la primera consulta lo que hace es hacer un insert y la segunda es la que muestra los datos esto es correcto??? otra duda es, antes de cerrar la conexion despues del insert tengo que hacer la consulta con:

SELECT *,(SELECT count(1)total FROM #che) as totality from #che
ya que cierro siempre la conexin despues de cada consulta, si primero hago el insert y cierro la conexion para abrir una nueva y ejecutar la consulta de seleccion no me mostrara los datos por que se destruye la tabla temporal cierto??

Código SQL:
Ver original
  1. SELECT h.hora AS hora1,h.marca,h.codoptima AS codoptimaT,h.target,P.CODOPTIMA,O.CODIGO,
  2. p.hora,p.peso,p.vaso,p.fecha,o.linea,o.tubo
  3. INTO #checho
  4. FROM pesos AS p, optimas AS o,htargets AS h
  5. WHERE o.codigo = p.codOptima AND o.linea = 'L01S'
  6. AND o.tubo LIKE '%' AND p.fecha BETWEEN '2010-06-21 08:00' AND '2010-06-21 08:30'
  7. AND p.hora='8:00 - 8:30' AND h.codoptima = o.codigo AND h.hora='8:00 - 8:30'
  8.     SELECT *,(SELECT COUNT(1)total FROM #checho) AS totality FROM #checho
  #42 (permalink)  
Antiguo 22/06/2010, 10:35
Avatar de flaviovich  
Fecha de Ingreso: agosto-2005
Ubicación: Lima, Peru
Mensajes: 2.951
Antigüedad: 19 años, 5 meses
Puntos: 39
Respuesta: Problema con consulta SQL

La primera parte crea una tabla temporal, que estara disponible durante la sesion abierta. Una vez cerrada ya no podras usar la tabla temporal.
Creo que con eso respondi a tu segunda duda.
__________________
No repitamos temas, usemos el Motor de busquedas
Plantea bien tu problema: Ayúdanos a ayudarte.
  #43 (permalink)  
Antiguo 23/06/2010, 09:15
 
Fecha de Ingreso: noviembre-2007
Mensajes: 504
Antigüedad: 17 años, 2 meses
Puntos: 2
Respuesta: Problema con consulta SQL

Gracias doctor asi quedo mi Store:
Código SQL:
Ver original
  1. SET ANSI_NULLS ON
  2. SET QUOTED_IDENTIFIER ON
  3. GO
  4.  
  5. ALTER PROCEDURE [dbo].[cuenta]
  6. @finicio datetime,
  7. @ffin datetime,
  8. @linea nvarchar(5),
  9. @tubo nvarchar(5),
  10. @hora nvarchar(15) AS
  11. BEGIN
  12.     SET Nocount ON
  13.     SELECT h.hora AS hora1,h.marca,h.codoptima AS codoptimaT,h.target,P.CODOPTIMA,O.CODIGO,
  14.     p.hora,p.peso,p.vaso,p.fecha,o.linea,o.tubo
  15.     INTO #checho
  16.     FROM pesos AS p, optimas AS o,htargets AS h
  17.     WHERE o.codigo = p.codOptima AND o.linea = @linea
  18.     AND o.tubo = @tubo AND p.fecha BETWEEN @finicio AND @ffin
  19.     AND p.hora= @hora AND h.codoptima = o.codigo AND h.hora= @hora
  20.  
  21.     SELECT *,(SELECT COUNT(1)total FROM #checho) AS totality FROM #checho
  22. END
Ahora el problema es que creo que en este stored no me muestra los datos como debe ser es decir: http://omploader.org/vNHE1dw en la columna "marca" miramos varias marcas lo cual no debe de ser por que un tubo no fabrica varias marcas a la vez y en la DB observemos: http://omploader.org/vNHE1eg Vemos que las marcas son diferenets dependiendo la fecha y hora y yo estoy consultando de hoy pero al pareser me esta mostrando todas las marcas. :(
  #44 (permalink)  
Antiguo 23/06/2010, 09:37
Avatar de flaviovich  
Fecha de Ingreso: agosto-2005
Ubicación: Lima, Peru
Mensajes: 2.951
Antigüedad: 19 años, 5 meses
Puntos: 39
Respuesta: Problema con consulta SQL

Por eso te dije en el post 12 que te falta un join por campo marca.
__________________
No repitamos temas, usemos el Motor de busquedas
Plantea bien tu problema: Ayúdanos a ayudarte.
  #45 (permalink)  
Antiguo 23/06/2010, 10:04
 
Fecha de Ingreso: noviembre-2007
Mensajes: 504
Antigüedad: 17 años, 2 meses
Puntos: 2
Respuesta: Problema con consulta SQL

Hola ya quedo asi:
Código SQL:
Ver original
  1. SET ANSI_NULLS ON
  2. SET QUOTED_IDENTIFIER ON
  3. GO
  4.  
  5. ALTER PROCEDURE [dbo].[cuenta]
  6. @finicio datetime,
  7. @ffin datetime,
  8. @linea nvarchar(5),
  9. @tubo nvarchar(5),
  10. @hora nvarchar(15) AS
  11. BEGIN
  12.     SET Nocount ON
  13.     SELECT h.hora AS hora1,h.marca,h.codoptima AS codoptimaT,h.target,h.fecha AS hfecha,P.CODOPTIMA,O.CODIGO,
  14.     p.hora,p.peso,p.vaso,p.fecha,o.linea,o.tubo
  15.     INTO #checho
  16.     FROM pesos AS p, optimas AS o,htargets AS h
  17.     WHERE o.codigo = p.codOptima AND o.linea = @linea
  18.     AND o.tubo = @tubo AND p.fecha BETWEEN @finicio AND @ffin
  19.     AND h.fecha BETWEEN @finicio AND @ffin
  20.     AND p.hora= @hora AND h.codoptima = o.codigo AND h.hora= @hora
  21.  
  22.     SELECT *,(SELECT COUNT(1)total FROM #checho) AS totality FROM #checho
  23. END
Pero ahora me muestra solo la marca de esa hora es decir : http://omploader.org/vNHE2cQ pero el numero de datos cambio y ahora me quede mas confundido :(
EDITO:
Hola creo que estos son los datos reales ya fui a revisar a la planta y me dicen que durante ese tiempo (14 minutos) es un aproximado de lo que se produjo :)
ahora solo quiero confirmar con usted doctor que tal ve mi consulta, si me recomienda algo?

Última edición por th3r0rn; 23/06/2010 a las 10:57

Etiquetas: sql
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:28.