none
DISTINCT RRS feed

  • Pergunta

  •  

    Seguinte pessoal, tenho a seguinter procedure:

     

     

    Code Block
    CREATE PROCEDURE sp_SearchZip
    (
     @District_ZIP NvarChar(7)
    )
    AS
    SELECT        State.State_ID, State.State_Name_Alpha, District.District_ZIP, District.District_Name_Alpha,
                          City.City_Name_Alpha, City.City_ID, District.District_ID
    FROM          District INNER JOIN
                          City   ON City.City_ID = District.City_ID INNER JOIN
                          State ON City.State_ID = State.State_ID
    WHERE          District.District_ZIP = @District_ZIP
    GO

     

     

     

    funciona, mais se ha mais de um District.District_Name_Alpha, ele me retorna o campo state e city repetidos, como eu faco para filtrar isso?tentei distinct mais nao deu certo...

    segunda-feira, 19 de novembro de 2007 02:30

Respostas

  • Resolvi meu problema da seguinte forma:

    criei procedures separadas, uma para state, outra pra city e district, retirei o District_ID das procedures State e City, e coloquei o Distinct:

    Code Block

    CREATE PROCEDURE sp_StateZip
    (
     @District_ZIP Nvarchar(7)
    )
     AS
    SELECT DISTINCT  State.State_Name_Alpha, State.State_ID, District.District_ZIP
    FROM            District Inner JOIN
                       State ON District.State_ID = State.State_ID
    WHERE           District.District_ZIP =@District_ZIP
    GO

     

     

    Code Block

    CREATE PROCEDURE sp_CityZip
    (
     
     @District_ZIP nvarchar(7)
    )
     AS
    SELECT        DISTINCT  City.City_ID, District.District_ZIP, City.City_Name_Alpha
    FROM            City INNER JOIN
                          District ON City.City_ID = District.City_ID
    Where (District.District_ZIP=@District_ZIP)
    GO

    mailto:District.District_ZIP=@District_ZIP">District.District_ZIP=@District_ZIP)
    GO

    <P< A>align=left> 

     

    Code Block

    CREATE PROCEDURE sp_ZipDistrict
    (
     @District_ID int
     
    )
    AS
    SELECT DISTINCT  District_ZIP, District_Name_Alpha, District_ID
    FROM District
    WHERE District_ID =@District_ID
    GO

     

     

    Valew
    quarta-feira, 21 de novembro de 2007 07:41

Todas as Respostas

  • Paula,

     

    Inicialmente gostaria de entender como esta definido o relacionamento entre estas tables em seu banco de dados?

    segunda-feira, 19 de novembro de 2007 11:02
  • Bom dia Paula

     

    Como solicitado pelo Junior, é fundamental entender como são os relacionamentos da sua Tabela 1...N ou N...N.

     

     

     

     

    Espero ter ajudado

    segunda-feira, 19 de novembro de 2007 11:06
  •  

    State - City - 1..N

    State - District - 1..N

    City - District 1..N

    Funciona assim: Digitando o District_ZIP , me acha o State que pode ser somente um, o City, que pode ser N, e o District que depende do City...o que esta acontecendo e que quando digito o District_ZIP ele me da por exemplo 5 District_Name_Alpha, mais me da no campo State_Name_Alpha e City Name_Alpha 5 vezes escrito a mesma coisa...

    OBS: District_Name_Alpha e District_ZIP estao na mesma tabela, porem pode ter mais de um District_Name_Alpha para cada District_ZIP

    terça-feira, 20 de novembro de 2007 00:11
  • Resolvi meu problema da seguinte forma:

    criei procedures separadas, uma para state, outra pra city e district, retirei o District_ID das procedures State e City, e coloquei o Distinct:

    Code Block

    CREATE PROCEDURE sp_StateZip
    (
     @District_ZIP Nvarchar(7)
    )
     AS
    SELECT DISTINCT  State.State_Name_Alpha, State.State_ID, District.District_ZIP
    FROM            District Inner JOIN
                       State ON District.State_ID = State.State_ID
    WHERE           District.District_ZIP =@District_ZIP
    GO

     

     

    Code Block

    CREATE PROCEDURE sp_CityZip
    (
     
     @District_ZIP nvarchar(7)
    )
     AS
    SELECT        DISTINCT  City.City_ID, District.District_ZIP, City.City_Name_Alpha
    FROM            City INNER JOIN
                          District ON City.City_ID = District.City_ID
    Where (District.District_ZIP=@District_ZIP)
    GO

    mailto:District.District_ZIP=@District_ZIP">District.District_ZIP=@District_ZIP)
    GO

    <P< A>align=left> 

     

    Code Block

    CREATE PROCEDURE sp_ZipDistrict
    (
     @District_ID int
     
    )
    AS
    SELECT DISTINCT  District_ZIP, District_Name_Alpha, District_ID
    FROM District
    WHERE District_ID =@District_ID
    GO

     

     

    Valew
    quarta-feira, 21 de novembro de 2007 07:41
  • Paulo,

     

    Boa solução, desta forma, fica mais fácil para administrar.

     

    Obrigado pelo retorno.

    quarta-feira, 21 de novembro de 2007 10:31