2012-09-17 13 views
6

İki parametreyi geçiyorum: @AccountId ve @key. @AccountId ve @key parametrelerinde hiçbir değer olmadığında @AccountId ve @key için veritabanında bulunan tüm değerleri göstermek istiyorum. Bunu aynı veri kümesi için yapmak istiyorum. Bu mümkün mü yoksa farklı veri kümeleri oluşturdum mu? Ben kullanıyorumParametrelerde değer olmadığında ssrs cinsinden tablodaki tüm değerler nasıl iletilir?

sorgusu:

CREATE PROCEDURE [dbo].[GetDenyList] 
@AccountId nvarchar(100), 
@key nvarchar(400) 
AS 
select New_AccountId AS 'AccountId/Key', New_Description AS 'Reason',CreatedOn AS 'Date' 
    from abc.dbo.New_keydenylist 
where New_AccountId is not null 
    AND @AccountId = New_AccountId 
union all 
select new_key AS 'AccountId/Key', New_Description AS 'Reason',CreatedOn AS 'Date' 
    from abc.dbo.New_keydenylist 
where New_key is not null 
    and @Key=New_key 

cevap

0

Sana WHERE maddesi geçirilen parametrelerin değerlerine bakılmaksızın her zaman true değerlendirmek herhangi yüklemi kullanmak zorunda, iyi sorunuzu anlamak. Örneğin WHERE 1 = 1 için:

WHERE 1 = 1 
AND (@AccountId IS NOT NULL OR AccountId = @AccountId) 

@key parametreyle aynı: iki parametre @key ve @AccountId hem NULL veya bunlardan biri iseniz

WHERE 1 = 1 
AND (@key IS NOT NULL OR New_key = @key) 

ardından WHERE fıkra hala geçerli olmak ve dönüş tüm sunulmadığı gibi satır. parametreye boş veya denklik için

+0

Orada parametrelerinde hiçbir girdidir ve giriş –

+0

parametreleri için doğru değerleri görüntülenmesi gereken yalnızca tüm değerler görüntülenir gerektiğini istiyorum @ user1677027, Bu, parametrelerde giriş olmadığında tüm değerleri gösterir, yani iki parametre "NULL" ise, aradığınız şey değil midir? Daha fazla netleştirebilir misin? –

+0

Değerler geliyor ancak parametreler doğru sonuçları vermiyor. Parametreyi seçtiğinizde her zaman tüm değerleri verir. –

0

Kontrol:

AND ((@AccountId IS NULL) OR (@AccountId = New_AccountId)) 
İlgili konular