-2
ALTER PROCEDURE [dbo].[SP_Something]
(
    @Search_Text VARCHAR(4000),
    @FILTER INT
)
AS
BEGIN  
    SELECT  Customer_Information
    FROM    Customer
    LEFT OUTER JOIN Something K 
            ON  K.Something _Id= Something_Id2
    LEFT OUTER JOIN  Something3 KS 
            ON KS.Something_Id =Something_Id3
    WHERE
        (Filter = 1 AND Customer_İnformation LIKE '%' + @Search_Text + '%')
        OR
        (Filter = 2 AND Customer_name LIKE '%' + @Search_Text + '%')
        OR
        (Filter = 3 AND Customer_Adress LIKE '%' + @Search_Text + '%')
END

I get all datas from Customer Table.

以下のコードでは、PRODUCT_TABLEからデータを取得する必要があります。

(Filter = 3 AND Customer_Adress LIKE '%' + @Search_Text + '%')
from PRODUCT_TABLE

Ms Sqlの「どこ」でこれを達成するにはどうすればよいですか?

どんな助けでも大歓迎です。

ありがとう。

4

2 に答える 2

1
ALTER PROCEDURE [dbo].[SP_Something]
(
    @Search_Text VARCHAR(4000),
    @FILTER INT
)
AS
BEGIN  
    IF Filter IN (1,2)
    SELECT  Customer_Information
    FROM    Customer
    LEFT OUTER JOIN Something K 
            ON  K.Something _Id= Something_Id2
    LEFT OUTER JOIN  Something3 KS 
            ON KS.Something_Id =Something_Id3
    WHERE
        (Filter = 1 AND Customer_İnformation LIKE '%' + @Search_Text + '%')
        OR
        (Filter = 2 AND Customer_name LIKE '%' + @Search_Text + '%')
        OR
        (Filter = 3 AND Customer_Adress LIKE '%' + @Search_Text + '%')

    IF Filter = 3
    SELECT  YourField
    FROM    ProductTable
    WHERE
        (Filter = 3 AND YourSearchField LIKE '%' + @Search_Text + '%')

END
于 2013-11-08T09:54:34.527 に答える
0
ALTER PROCEDURE [dbo].[SP_Something]
(
    @Search_Text VARCHAR(4000),
    @FILTER INT
)
AS
BEGIN  
    SELECT  Customer_Information
    FROM    Customer
    LEFT OUTER JOIN Something K 
            ON  K.Something _Id= Something_Id2
    LEFT OUTER JOIN  Something3 KS 
            ON KS.Something_Id =Something_Id3
    LEFT OUTER JOIN  PRODUCT_TABLE P
            ON P.Something_Id = KS.Something_Id3

    WHERE
        (Filter = 1 AND Customer_İnformation LIKE '%' + @Search_Text + '%')
        OR
        (Filter = 2 AND Customer_name LIKE '%' + @Search_Text + '%')
        OR
        (Filter = 3 AND Customer_Adress LIKE '%' + @Search_Text + '%')
        OR
        (P.Filter = 3 AND P.Customer_Adress LIKE '%' + @Search_Text + '%')

END

ここで見逃しているもう1つのことは、Where句で、どのフィルターがどのテーブルからのものであるかについて何も言及していないことだと思います。列名の前にテーブルエイリアスを使用してください。あいまいさ。

于 2013-11-08T09:52:53.720 に答える