-
Conteúdo Similar
-
Por GuiPetenuci
Boa tarde,
Estou com um problema e estou ficando louco, ja li praticamente todos as respostas de View de SQL Server no Stack Overflow e a maioria da documentacao da MSFT
Tenho uma view que faz algumas queries malucas que o cliente precisa, mas ela nao retorna o resultado justo, e se eu pegar o codigo e fazer uma query simples com o codigo, o resultado è ok.
Codigo da View
SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO /****** Object: View [QEHS].[V_FactMonitorings25261gui] Script Date: 11/07/2019 16:24:53 ******/ CREATE view [QEHS].[V_FactMonitorings25261gui] as with Plants as ( select distinct [plant-id] from [QEHS].[Fact-Monitorings-H&S] ) , MIDs as ( select mid from ( values ( 'MON.02.25 Total number of LTA free days (calendar days)') ,( 'MON.02.26 Total number of TRI free days (calendar days)') ) as x(mid) ), PlantList AS ( select a.date, b.[plant-id], c.mid from QEHS.Calendar_Gen A cross join plants b cross join mids c where year(a.date) >= 2011 ), help1 as ( SELECT p.date, p.[plant-id], p.mid, t.value, ( case when (year(p.date) = year(getdate()) and month(p.date) = month(getdate())) then day(getdate()) else iif(t.value is not null, 0, day(eomonth(p.date))) end ) Days, cast(isnull(cast(t.value as bit),0) as integer) reset FROM PLANTLIST p left join [QEHS].[Fact-Monitorings-H&S] T on ( p.date = t.date and p.[plant-id] = t.[plant-id] and p.mid = t.[monitoring-id] ) ), help2 as ( select date, [plant-id], mid, value, days, reset, formatmessage('%s%s%d', [plant-id], mid,sum(reset) over ( partition by [plant-id], mid order by date, [plant-id], mid ) ) grp from help1 where year(date) >= (select year(min(date)) from [QEHS].[Fact-Monitorings-H&S]) ), help3 as ( select date, [plant-id], mid, value, days, first_value(value) over (partition by grp order by date, [plant-id], mid) fullvalue from help2 ) -- select date, [plant-id], mid, isnull(a.Value, fullvalue +sum(days) over ( partition by [plant-id], mid, fullvalue order by mid, date, [plant-id] rows between unbounded preceding and current row ) ) total from help3 a GO a view retorna assim:
Agora se eu pegar e fazer a query "na mao", retorna assim, que è o justo:
Agora, porque na view retorna um e a query retorna outro? o.o
-
Por beto.vanzin
Bom dia. Eu fiz tenho uma view que traz os movimentos de contas correntes. Porém, eu preciso agrupar em uma tabela dinâmica.
Estou tentando fazer o agrupamento direto pela view. Porém, através de uma query, eu consigo ver o resultado que eu quero, mas pela view, não permite gravar.
Veja o script que eu estou usando, e a mensagem de erro ao gravar a view:
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
USE [BANCO]
GO
/****** Object: View [dbo].[SALDO_CONTA_CORRENTE] Script Date: 03/06/2019 12:29:55 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER VIEW [dbo].[SALDO_CONTA_CORRENTE]
AS
SELECT A.EMPRESA,
C.TIPO_MOVIMENTO AS [TP_MOV],
A.RATEIO_FILIAL,
RTRIM(A.CONTA_CONTABIL) + ' - ' + RTRIM(B.DESC_CONTA) AS [CONTA],
SUM(A.CREDITO) AS DEBITO,
SUM(A.DEBITO) AS CREDITO,
SUM(A.DEBITO - A.CREDITO) AS SALDO
FROM dbo.CTB_LANCAMENTO_ITEM A INNER JOIN
dbo.CTB_LANCAMENTO C ON A.EMPRESA = C.EMPRESA AND A.LANCAMENTO = C.LANCAMENTO INNER JOIN
dbo.CTB_CONTA_PLANO B ON A.CONTA_CONTABIL = B.CONTA_CONTABIL INNER JOIN
dbo.CTB_MOVIMENTO_TIPO D ON C.TIPO_MOVIMENTO = D.TIPO_MOVIMENTO INNER JOIN
dbo.CTB_LX_LANCAMENTO_TIPO ON A.LX_TIPO_LANCAMENTO = dbo.CTB_LX_LANCAMENTO_TIPO.LX_TIPO_LANCAMENTO
WHERE B.CONTA_CORRENTE = '1' AND B.INATIVA = '0'
GROUP BY
A.EMPRESA,
C.TIPO_MOVIMENTO,
A.RATEIO_FILIAL,
A.CONTA_CONTABIL,
B.DESC_CONTA
ORDER BY A.EMPRESA, A.RATEIO_FILIAL, C.TIPO_MOVIMENTO, A.CONTA_CONTABIL
GO
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
E esta é a mensagem de erro:
Msg 1033, Level 15, State 1, Procedure SALDO_CONTA_CORRENTE, Line 29
The ORDER BY clause is invalid in views, inline functions, derived tables, subqueries, and common table expressions, unless TOP or FOR XML is also specified.
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Alguém consegue me ajudar com este erro?
-
Por jomarcoelho
Numa banco de dados tem 1 tabela com lançamentos gerais de todos os produtos e todos os meses
Tabela de Producao - Geral ID Produto Quantidade Data 1 Sebo 1000 12/11/2018 2 Canela 2000 12/11/2018 1 Sebo 2000 13/11/2018 3 Osso 100 13/11/2018 1 Sebo 2000 10/10/2018 2 Canela 1000 09/09/2018 2 Canela 1000 09/09/2018 3 Osso 1000 10/10/2018 1 Sebo 1500 20/09/2018 4 Orelha 3000 18/10/2018 1 Sebo 4000 11/10/2018 3 Osso 1200 01/10/2018
Qual a consulta correta para extrair a produção total de cada produto dentro do mes.
Puxando numa so tabela o total “por produto”, dentro do mes.
Assim:
Tabela de Producao - Setembro Canela 2000 Sebo 1500
Tabela de Producao - Outubro Sebo 6000 Osso 2200 Orelha 3000
Tabela de Producao -Novembro Sebo 3000 Canela 2000 Osso 100
-
Por jomarcoelho
Numa banco de dados tem 1 tabela com lançamentos gerais de todos os produtos e todos os meses
Tabela de Producao - Geral ID Produto Quantidade Data 1 Sebo 1000 12/11/2018 2 Canela 2000 12/11/2018 1 Sebo 2000 13/11/2018 3 Osso 100 13/11/2018 1 Sebo 2000 10/10/2018 2 Canela 1000 09/09/2018 2 Canela 1000 09/09/2018 3 Osso 1000 10/10/2018 1 Sebo 1500 20/09/2018 4 Orelha 3000 18/10/2018 1 Sebo 4000 11/10/2018 3 Osso 1200 01/10/2018
Qual a consulta correta para extrair a produção total de cada produto dentro do mes.
Puxando numa so tabela o total “por produto”, dentro do mes.
Assim:
Tabela de Producao - Setembro Canela 2000 Sebo 1500
Tabela de Producao - Outubro Sebo 6000 Osso 2200 Orelha 3000
Tabela de Producao -Novembro Sebo 3000 Canela 2000 Osso 100
-
Por Rasp
Prezados,
Fiz em ambiente local (xampp) uma tela de login simples e está funcionando perfeitamente, sem apresentar qualquer erro, porém, ao subir para meu servidor web (ambos rodam PHP 7.1), o sistema de login não funciona, só gera a mensagem de erro de login e senha. Após verificar os possíveis erros, identifiquei que a consulta SQL não está funcionando, porém, no PHPmyAdmin funciona normalmente (no servidor web), estou usando uma view, mas não encontrei nada que tivesse o mesmo problema que estou passando.
Segue código:
if($sql = $mysqli->prepare("SELECT * FROM `vw_login` WHERE `login` = ? LIMIT 1")) { $sql->bind_param("s", $frmlogin); $sql->execute(); $sql->bind_result($id, $nome, $hash); if($sql->fetch() AND Bcrypt::check($frmsenha, $hash)) { ... header('Location: /'); } else { session_destroy(); $retorno = "Login ou senha incorretos."; } $sql->close(); } Obrigado!
-