Usuário com melhor resposta
QUERY Linq Duvidas

Pergunta
-
Pessoal, boa noite.
estou com duvidas de como transformar esta query em linq,
select ta.IdAuto, ta.Marca, ta.Placa from Tbl_Automovel as ta
inner join Tbl_Marca as tm on ta.IdAuto != tm.id_carro where tm.HoraI < @dthji and tm.HoraF > @dthjf and tm.DataM = @dth
a realidade é que passando o campo DataM eu so tenho resultado se houver registros na tabala marca.
a minha ideia seria que ela carrega-se todos os dados da tbl_automovel caso os parametros passados pela tabela marca não atendesse
alguem poderia me dar uma ajuda.
att. ricardo.
Respostas
Todas as Respostas
-
-
Ricardo,
Neste caso independe de seu uma query em Linq, você deve trocar o Operador da Junção, ao invês de utilizar Inner Join pode-se testar o Left ou Right Join, veja os exemplos:
-- Irá retornar os dadados da tabela TBL_Automovel idependente da existência de dados em TBL_Marca, Utilizando Left Join -- select ta.IdAuto, ta.Marca, ta.Placa from Tbl_Automovel as ta Left join Tbl_Marca as tm on ta.IdAuto != tm.id_carro where tm.HoraI < @dthji and tm.HoraF > @dthjf and tm.DataM = @dth Go -- Irá retornar os dadados da tabela TBL_Marca idependente da existência de dados em TBL_Automovel, Utilizando Right Join -- select ta.IdAuto, ta.Marca, ta.Placa from Tbl_Automovel as ta Right join Tbl_Marca as tm on ta.IdAuto != tm.id_carro where tm.HoraI < @dthji and tm.HoraF > @dthjf and tm.DataM = @dth Go
Espero ter ajudado.
Pedro Antonio Galvão Junior [MVP | MCC | MSTC | MIE | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados Relacional e Data Warehouse | Professor Universitário | @JuniorGalvaoMVP | http://pedrogalvaojunior.wordpress.com]
-
Bom dia José Diz.
A ideia seria agendar os motoristas e carros disponíveis.
Na Tbl_Motorista tenho um cadastro basico com o nome e habilitaçãoTbl_Automovel somente a marca e placa
não consegui inserir uma img aqui, com o resultado.
CREATE TABLE [dbo].[Tbl_Automovel](
CREATE TABLE [dbo].[Tbl_Marca](
[IdAuto] [int] IDENTITY(1,1) NOT NULL,
[Marca] [varchar](50) NOT NULL,
[Placa] [varchar](10) NOT NULL,
CONSTRAINT [PK_Tbl_Automovel] PRIMARY KEY CLUSTERED
[id_marcacao] [int] IDENTITY(1,1) NOT NULL,
[De] [varchar](8) NOT NULL,
[Para] [varchar](8) NOT NULL,
[Cliente] [varchar](40) NOT NULL,
[DataM] [date] NOT NULL,
[id_Motorista] [int] NULL,
[id_carro] [int] NOT NULL,
[TempoViajem] [decimal](10, 2) NOT NULL,
[HoraI] [time](7) NULL,
[HoraF] [time](7) NULL,a minha ideia seria que a tbl_marca fosse um agendamento, assim saberia quais carros estaria disponiveis e motoristas.
-
-
Bom dia junior, já havia testado com left e right e o resultado era o mesmo.
quando a data não existia na tbl_marca ele não trazia nenhum resultado. segui o exemplo do José e funcionou,
como relatei na resposta que dei ao José, minha ideia seria fazer um agendamento.
aceito sugestões, como relatei estou criando esse projeto a fim de estudos do MVC.
att, ricardo.
-
-
-
Bom dia junior, já havia testado com left e right e o resultado era o mesmo.
quando a data não existia na tbl_marca ele não trazia nenhum resultado. segui o exemplo do José e funcionou,
como relatei na resposta que dei ao José, minha ideia seria fazer um agendamento.
aceito sugestões, como relatei estou criando esse projeto a fim de estudos do MVC.
att, ricardo.
Ricardo,
Sem problemas, eu não havia me atentando para o operador que você esta utilizando na junção neste trecho:
joinTbl_Marca astm onta.IdAuto !=tm.id_carro
Bem como, simplesmente não levei em consideração o uso das variáveis, que você estava utilizando como elemento para filtrar os dados. Desculpe-me, fiz uma pequena confusão (kkkk).
Neste caso, o uso dos operadores Exists, Not Exists e em alguna casos In ou Not In podem ser aplicados.
Pedro Antonio Galvão Junior [MVP | MCC | MSTC | MIE | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados Relacional e Data Warehouse | Professor Universitário | @JuniorGalvaoMVP | http://pedrogalvaojunior.wordpress.com]
- Editado Junior Galvão - MVPMVP sábado, 14 de dezembro de 2019 18:50
-
-
-
Junior, eu que agradeço a ajuda. não trabalho com desenvolvimento. então para mim toda a ajuda e sempre bem vinda. gosto de aprender por hobby. e algumas vezes ajudar pessoas proximas a mim.
Mais uma vez obrigado.
Ricardo,
Que bom, fico feliz, obrigado por sua consideração.
Pedro Antonio Galvão Junior [MVP | MCC | MSTC | MIE | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados Relacional e Data Warehouse | Professor Universitário | @JuniorGalvaoMVP | http://pedrogalvaojunior.wordpress.com]