Please start any new threads on our new
site at https://forums.sqlteam.com. We've got lots of great SQL Server
experts to answer whatever question you can come up with.
| Author |
Topic |
|
hannebri
Starting Member
1 Post |
Posted - 2005-06-02 : 08:35:50
|
| hello, can u help me to short it? plsi tried case as well, but i still have a double query! SELECT T1.DocEntry FROM ODLN T0 INNER JOIN DLN1 T1 ON T0.DocEntry = T1.DocEntry WHERE T0.DocNum = '100' and T1.U_Teillief ='ja') here is the hole one.thanx a lotIF exists ( SELECT T2.docentry FROM ODLN T0 INNER JOIN DLN1 T1 ON T0.DocEntry = T1.DocEntry RIGHT JOIN RDR1 T2 on T2.DocEntry = T1.BaseEntry WHERE T0.DocNum='100' and T1.BaseType = '17' and (T2.TrgetEntry is Null OR T2.TrgetEntry <> T1.DocEntry)) IF exists ( SELECT T1.DocEntry FROM ODLN T0 INNER JOIN DLN1 T1 ON T0.DocEntry = T1.DocEntry WHERE T0.DocNum = '100' and T1.U_Teillief ='ja') SELECT 'Teillieferung Artikel & Menge betreffend' ELSE SELECT 'Teillieferung Artikel betreffend' ELSE IF exists ( SELECT T1.DocEntry FROM ODLN T0 INNER JOIN DLN1 T1 ON T0.DocEntry = T1.DocEntry WHERE T0.DocNum = '100' and T1.U_Teillief ='ja') SELECT 'Teillieferung Menge betreffend' ELSE IF not exists ( SELECT T1.DocEntry FROM ODLN T0 INNER JOIN DLN1 T1 ON T0.DocEntry = T1.DocEntry WHERE T0.DocNum = '100' and (T1.U_Teillief ='ja' OR T1.U_Teillief ='nein') SELECT '' ELSE SELECT 'keine Teillieferung' |
|
|
DonAtWork
Master Smack Fu Yak Hacker
2167 Posts |
Posted - 2005-06-02 : 13:33:27
|
| Declare @foo intselect @foo = count(T1.DocEntry) FROM ODLN T0 INNER JOIN DLN1 T1 ON T0.DocEntry = T1.DocEntry WHERE T0.DocNum = '100' and T1.U_Teillief ='ja'IF exists (SELECT T2.docentry FROM ODLN T0 INNER JOIN DLN1 T1 ON T0.DocEntry = T1.DocEntry RIGHT JOIN RDR1 T2 on T2.DocEntry = T1.BaseEntry WHERE T0.DocNum='100' and T1.BaseType = '17' and (T2.TrgetEntry is Null OR T2.TrgetEntry <> T1.DocEntry)) BEGIN IF @foo > 0 BEGIN SELECT 'Teillieferung Artikel & Menge betreffend' END ELSE BEGIN SELECT 'Teillieferung Artikel betreffend' ENDENDELSEIF @foo > 0BEGIN SELECT 'Teillieferung Menge betreffend' ENDELSE BEGIN SELECT ''ENDTrying to follow the logic, i cannot ever see you getting to this line: SELECT 'keine Teillieferung'Because of your exist clause. If it does exist, it will select 'Teillieferung Menge betreffend' Otherwise, it will drop to the NOT exist clause, which WILL be true, and it will select ''*need more coffee*SELECT * FROM Users WHERE CLUE > 0(0 row(s) affected) |
 |
|
|
|
|
|