Skip to Content
0

how to show the whole list of sales man even the ones with no resolute for the calculation

4 days ago

45

avatar image

hey,

i wrote this query and it shows only the sales man that have invoces by their name for the dates given .

i want to see the whole list of sales man with '0' or '-' for the ones that don't have invoices yet .

SELECT
 T1.[SlpName], sum( T2.[DocTotal])/1.17   
FROM OCRD T0              
          INNER JOIN OSLP T1 ON T0.SlpCode = T1.SlpCode            
Inner join ORCT T2 on T0.cardcode = T2.cardcode WHERE T2.[DocDate] >=[%0] and T2.[DocDate] <=[%1] GROUP BY T1.[SlpName]

THANK YOU !!

10 |10000 characters needed characters left characters exceeded
* Please Login or Register to Answer, Follow or Comment.

3 Answers

Johan Hakkesteegt 3 days ago
1

Hi,

Please try this:

SELECT T1.[SlpName], ISNULL(sum( T2.[DocTotal])/1.17, 0) AS Total
FROM OSLP T1              
     LEFT OUTER JOIN OCRD T0 ON T1.SlpCode = T0.SlpCode            
LEFT OUTER JOIN ORCT T2 on T0.cardcode = T2.cardcode WHERE T2.[DocDate]>=[%0] and T2.[DocDate]<=[%1] GROUPBY T1.[SlpName]

Regards,

Johan

Show 4 Share
10 |10000 characters needed characters left characters exceeded

thanks for trying to help

but i still don't get the full list of sales man

have any idea why ?

0

Hi,

It is probably the WHERE clause. We can fix this by using an inline sub query: Please try this:

/* select * from ORCT x */
DECLARE @FROM AS DATETIME
DECLARE @TO AS DATETIME
SET @FROM = /* x.DocDate */ [%0]
SET @TO = /* x.DocDate */ [%1]

SELECT T1.[SlpName]
     , ISNULL((SELECT ISNULL(sum(T2.[DocTotal])/1.17, 0) FROM ORCT T2 WHERE T2.cardcode = T0.CardCode                                                                         AND T2.[DocDate] BETWEEN @FROM AND @TO), 0) AS Total
FROM OSLP T1              
     LEFT OUTER JOIN OCRD T0 ON T1.SlpCode = T0.SlpCode

regards,

Johan

0

thank you!

this time it gave me the full list

but thousands of lines and some had 2 different results :

11.png (12.4 kB)
0

I see. It may be enough to just add a simple GROUP BY clause at the end of the query:

GROUP BY T1.[SlpName]

Regards,

Johan

0
Nagarajan K 4 days ago
0

Hi,

Try this query,

SELECT T1.[SlpName], sum( T2.[DocTotal])/1.17 FROM OCRD T0 INNER JOIN OSLP T1 ON T0.SlpCode = T1.SlpCode Inner join ORCT T2 on T0.cardcode = T2.cardcode WHERE T2.[DocDate] >=[%0] and T2.[DocDate] <=[%1] AND (T1.Slpname Like '%%O%%' OR T1.Slpcode = '-') GROUP BY T1.[SlpName]

Regards,

Nagarajan

Show 3 Share
10 |10000 characters needed characters left characters exceeded

it doesn't find any matching data ...

0

Hi,

Basically you want list of AR Invoices which is not paid right?

Regards,

Nagarajan

0

Hi,

I want the full list of salesman and the sum of invoces that have been paid in a given time

this Query suposed to help us know how much bonus to give the salesman that worked well on the money collection

and during the month - to know to which one to give a call since he didn't collect any money.

thanks

0
Abdul Mannan 4 days ago
0

Change your join to Left Outer Join because inner join returns values which are in both tables while left outer join will return all values from first table irrespective of second table.. if value is not in second table if will shows first table value only...

Show 4 Share
10 |10000 characters needed characters left characters exceeded

i tried, the result is the same

0

You need invoices or payments because ORCT is incoming Payments Table ?

0

the payments

0

Then Please check on Customer Master Data each business partner is assigned sales employee i think user is assigning sales employee on invoice and only some business partners has assigned default sales employee

0