SQL Server 2005 데이터베이스에서 주문이없는 고객 이름을 찾으려고하거나 1 년간의 견적을 요청하고 있습니다. 나는 이것을 시도하고 있지만 작동하지 않는다. 왜냐하면 그것은 나에게 1 년 이상 된 문서만을 보여주기 때문이다. 그러나, 같은 해의 다른 문서가 선물 인 경우에도 그것들을 보여준다.SQL Server 2005 : 1 년이 지나도 주문하지 않는 고객 찾기
SELECT DISTINCT
ANAGRAFICACF.CODCONTO,
DSCCONTO1,
'€ '+LEFT(TOTDOCUMENTO,LEN(TOTDOCUMENTO)-2),
CONVERT(VARCHAR(11),DATADOC,6),
TESTEDOCUMENTI.TIPODOC,
ANAGRAFICACF.PARTITAIVA,
ANAGRAFICACF.CODFISCALE,
ANAGRAFICARISERVATICF.NOTE1,
TESTEDOCUMENTI.DATADOC,
TESTEDOCUMENTI.CODAGENTE1,
ANAGRAFICAAGENTI.DSCAGENTE
FROM
dbo.TESTEDOCUMENTI
INNER JOIN
dbo.ANAGRAFICACF ON CODCLIFOR = CODCONTO
INNER JOIN
dbo.RIGHEDOCUMENTI ON PROGRESSIVO = IDTESTA AND TOTNETTORIGA <> '0'
INNER JOIN
dbo.ANAGRAFICARISERVATICF ON CODCLIFOR = ANAGRAFICARISERVATICF.CODCONTO
LEFT JOIN
dbo.ANAGRAFICAAGENTI ON CODAGENTE = TESTEDOCUMENTI.CODAGENTE1
WHERE
(dbo.TESTEDOCUMENTI.TIPODOC = 'ORDER' OR
dbo.TESTEDOCUMENTI.TIPODOC = 'QUOTATION')
AND (dbo.TESTEDOCUMENTI.DATADOC < DATEADD(DAY, -365, GETDATE())
ORDER BY
TESTEDOCUMENTI.DATADOC DESC
이 이 추가 (@scsimon을 부탁드립니다)
CODCONTO | DSCCONTO1 | TOTDOCUMENTO| DATADOC | TIPODOC| CODAGENTE| DSCAGENTE|
---------+-----------+-------------+---------+--------+----------+----------+
C 10395 |CAIO|€ 1048.22 |03 Aug 15 |ORC |2015-08-03 00:00:00.000 |A 4 |F
C 51282 |SEMPRONIO|€ 2217.41 |03 Aug 15 |PCL |2015-08-03 00:00:00.000 |NULL
C 10120 |PINCO |€ 689.54 |03 Aug 15 |PCL |2015-08-03 00:00:00.000 |A 4 |F
C 746 |TIZIO |€ 205.45 |03 Aug 15 |ORC |2015-08-03 00:00:00.000 |A 4 |F
솔루션입니다 어디 NOT IN과 조건 :
당신은NOT EXISTS
를 사용하려면
WHERE dbo.TESTEDOCUMENTI.TIPODOC = 'FVC' AND dbo.TESTEDOCUMENTI.DATADOC < DATEADD(DAY, -365, GETDATE())
AND TESTEDOCUMENTI.CODCLIFOR NOT IN (SELECT DISTINCT TESTEDOCUMENTI.CODCLIFOR
FROM dbo.TESTEDOCUMENTI
WHERE dbo.TESTEDOCUMENTI.TIPODOC = 'FVC' AND dbo.TESTEDOCUMENTI.DATADOC > DATEADD(DAY, -365, GETDATE())
)
Hope this will help, if someone else will have my request.
마지막 where 절은 부적절한 것처럼 보입니다. 제거 할 때 발생하는 문제 – scsimon
예는 부적절합니다. 나는 현재 연도에도 주문이있는 고객의 이름을 얻었 기 때문에 동일한 결과를 얻지 만 여전히 잘못된 결과를 얻습니다. 나는 그들을 배제 할 필요가있다. – BigBlack
주문 날짜는 dbo.TESTEDOCUMENTI.DATADOC – scsimon