2012-10-30 4 views
-1

경우 10 매개 변수 유형 날짜 ... recives 저장 프로 시저가 있지만이 모든 클라이언트의 정보 흐름을 보여야하기 때문에 Null이있는 경우 정보를 표시 할 수 있습니다. 때로는 클라이언트가 creditnotes와 주문을 가지고 있지만 경우에만 주문을 가지고 있지만 신용 메모를하지 ... 문의 ... 난 WHERE 절에 대해이 작업을 수행 : 어디에 SQL 서버가

 WHERE 
       (Customer.cd_CustomerID = ISNULL(@customer, Customer.cd_CustomerID)) 
       AND (@orderID IS NULL OR Orders.cd_OrderID = @orderID) 
       AND (@Location IS NULL OR CustomerSL.cd_LocID = @Location)  
       and (Convert(date,Orders.fh_Date,111) BETWEEN coalesce (@FechaPedido1,'1900-01-01') AND coalesce (@FechaPedido2,'3000-12-31')) 
       and (Convert(date,Receipt.fh_Date,111) BETWEEN coalesce (@FechaRemision1,'1900-01-01') AND coalesce (@FechaRemision2,'3000-12-31')) 
       and (Convert(date,Invoice.fh_Date,111) BETWEEN coalesce (@FechaFactura1,'1900-01-01') AND coalesce (@FechaFactura2,'3000-12-31')) 
       and (Convert(date,CreditNote.fh_Date,111) BETWEEN coalesce (@FechaNotaCredito1,'1900-01-01') AND coalesce (@FechaNotaCredito2,'3000-12-31')) 
       and (Convert(date,Dispersion.fc_CreatedDate,111) BETWEEN coalesce (@FechaDispersion1,'1900-01-01') AND coalesce (@FechaDispersion2,'3000-12-31')) 

하지만이에

가 보여 case..only 클라이언트에 대한 모든 흐름을 가지고있는 정보 ... 컨설턴트 나에게 나던 정보의 흐름을 보여주지 못함 사안이나 분산이없는 주문 o 어떤 경우이든 ... 이미 어디에서 ..와 함께 시도해보십시오 bu (@ fechapedido1가 null) 경우, TI는

을 (@ FechaPedido1 및 FechaPedido2 @ 사이의 변환 (날짜, Orders.fh_Date, 111)) 를 시작 sintaxis 몇 가지 문제 ...

SQL Server showme this message '키워드'Convert '근처의 구문이 올바르지 않습니다.' 는하지만 ... 그 선이 정확 .. : S는 제발 도와주세요 : D 감사 : 당신은 WHERE 절에 IF 문을 가질 수 없습니다

+2

은 무엇인가 ", 111"날짜 변환? 이것은 날짜를 nvarchar로 변환하는 구문과 같습니다 ... 제거해보십시오. –

+0

", 111"형식을 지정하십시오. 괜찮습니다. – mCasamento

답변

1

D,이 시도 :

AND 
(
    (
     @fechapedido1 is null AND 
     Convert(date,Orders.fh_Date,111) BETWEEN @FechaPedido1 and @FechaPedido2 
    ) OR 
    @fechapedido1 is not null 
) 
+0

하한값이''null '인 경우 비교해보십시오. 아마도 'AND'는 'OR'이었을 것입니다. – HABO

+0

좋은 지적은 아마도'if (@ fechapedido1 is not null)'을 의미 할 것입니다. 그렇지 않으면 의미가 없습니다. 이 경우 위의 예에서 플립하십시오. – LittleBobbyTables

+0

내 상담에 내가 정보를 제시하기 위해 참여하지만 .. 경우에 해당 클라이언트에 대한 신용 메모가 없습니다 .. 내가 신용 메모를 자동으로 할당하기 때문에 테이블 신용 메모에는 날짜에 대한 널이 결코 없기 때문에 이 등록기에 창작 된 .. –

관련 문제