none
T-SQL para C# RRS feed

  • Pergunta

  • Eu tenho um select simples na minha pagina.aspx

      mdc = new ModelDataContext();

               
                    var sourceClientes = from cli in mdc.CLIENTES
                                         select cli;
                    
                    gwDados.DataSource = sourceClientes;
                    gwDados.DataBind();

    Como mudar meu sourceClientes para o select abaixo:

    SELECT CONTATOS.CODIGO, HISTCATREV.TIPO, HISTCATREV.CODIGOTIPO,CONTATOS.CLIENTE,CONTATOS.NOME,
           CONTATOS.EMAIL,  
    CASE HISTCATREV.TIPO 
    WHEN 'C' THEN 'PRO'
    ELSE
    NULL 
    END AS CATEGORIA,
    CASE HISTCATREV.TIPO 
    WHEN 'R' THEN '001'
    ELSE
    NULL 
    END AS REVISTA
    FROM CONTATOS
    INNER JOIN HISTCATREV ON HISTCATREV.CODIGO = CONTATOS.CODIGO
    INNER JOIN CLIENTES ON CLIENTES.CODIGO = CONTATOS.CLIENTE

    sexta-feira, 24 de julho de 2015 19:30

Respostas

  • Paulo, então creio que seja assim:

    var sourceClientes = from Contatos in mdc.CONTATOS
    join Histcatrev in mdc.HISTCATREV on Histcatrev.Codigo = Contatos.Codigo
    join Clientes in mdc.CLIENTES on Clientes.Codigo = Contatos.Codigo
    select Contatos.Codigo, Histcatrev.Tipo, Histcatrev.Codigotipo, Contatos.Cliente,
    	Contatos.Nome, Contatos.Email, Histcatrev.Categoria = (Histcatrev.Tipo == 'C' ? 'PRO' : NULL), Histcatrev.Revista = (Histcatrev.Tipo == 'R' ? '001' : NULL);


    Rafael Dalsenter

    • Marcado como Resposta Marcos SJ segunda-feira, 27 de julho de 2015 18:43
    segunda-feira, 27 de julho de 2015 12:27

Todas as Respostas

  • Paulo,

    Escrevi meio rápido...acho que é nessa linha:

    var sourceClientes = from Contatos in mdc.CONTATOS
    join Histcatrev in mdc.HISTCATREV on Histcatrev.Codigo = Contatos.Codigo
    join Clientes in mdc.CLIENTES on Clientes.Codigo = Contatos.Codigo
    select Contatos.Codigo, Histcatrev.Tipo, Histcatrev.Codigotipo, Contatos.Cliente,
    	Contatos.Nome, Contatos.Email, (Histcatrev.Tipo == 'C' ? 'PRO' : NULL), (Histcatrev.Tipo == 'R' ? '001' : NULL);


    Rafael Dalsenter

    sexta-feira, 24 de julho de 2015 20:31
  • Obrigado por responder Rafael Dalsenter

    Mas acho que esta faltando códigos no final.

    A condição e a seguinte:

    IF HISTCATREV.TIPO == 'C' THEN

        HISTCATREV.CATEGORIA = 'PRO'

    ELSE

        IF HISTCATREV.TIPO == 'R' THEN

            HISTCATREV.REVISTA == '001' THEN

    Eu acho que esta errado pelo fato dos campos categoria e revista não aparecerem no codigo.

    Aguardo sua resposta.

    Muito Obrigado pela ajuda

        

     

    sábado, 25 de julho de 2015 10:23
  • Paulo, então creio que seja assim:

    var sourceClientes = from Contatos in mdc.CONTATOS
    join Histcatrev in mdc.HISTCATREV on Histcatrev.Codigo = Contatos.Codigo
    join Clientes in mdc.CLIENTES on Clientes.Codigo = Contatos.Codigo
    select Contatos.Codigo, Histcatrev.Tipo, Histcatrev.Codigotipo, Contatos.Cliente,
    	Contatos.Nome, Contatos.Email, Histcatrev.Categoria = (Histcatrev.Tipo == 'C' ? 'PRO' : NULL), Histcatrev.Revista = (Histcatrev.Tipo == 'R' ? '001' : NULL);


    Rafael Dalsenter

    • Marcado como Resposta Marcos SJ segunda-feira, 27 de julho de 2015 18:43
    segunda-feira, 27 de julho de 2015 12:27