Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 
Not applicable

problems with sum

Hey everyone i have a problem , i am buliding a sales report,

once i am trying to sum the incomes coulmn for some reason its duplicates my incomes ?

anyone have suggetions what should i check?

28 Replies
Not applicable
Author

i tried to do an distinct INV_INVNUM which is my invoice number, and got a error message and so i tried to do a group by action and got the following error

This the error message:

error message.PNG

Not applicable
Author

i tried to do an distinct INV_INVNUM which is my invoice number, and got a error message and so i tried to do a group by action and got the following error

This the error message:error message.PNG

reddy-s
Master II
Master II

Hi Jhonatan,

When you use a group by all the fields have to aggregated for it to work .

So use the below syntax:

KEY_TABLE:

load KEY_INV_INVNUM,

       only(<field1>),

       only(<field2>),

      .

      .

      etc..

      resident KEY_TABLE_TEMP group by KEY_INV_INVNUM;

Not applicable
Author

Hi i tried to write it down  like this:

KEY_TABLE:

//טבלת מפתחות

LOAD

KEY_INV_INVNUM,

ONLY (<CUST_CUST>),

ONLY (<FAMILY_FAMILY>),

ONLY (<PART_PART>),

ONLY (<AGENT_AGENT>),

ONLY (<BRANCH_BRANCH>),

ONLY (<DATE>),

CUST_CUST&'_'&AGENT_AGENT&'_'&BRANCH_BRANCH&'_'&PART_PART&'_'&DATE  AS SALES_KEY

RESIDENT KEY_TABLE_TEMP

GROUP BY KEY_INV_INVNUM

;

DROP TABLE KEY_TABLE_TEMP;

and got this error:

error message.PNG

Not applicable
Author

Hi first of all thanks for your tips,

second:

i wrote doen this:

KEY_TABLE:

//טבלת מפתחות

LOAD

KEY_INV_INVNUM,

ONLY (CUST_CUST),

ONLY (FAMILY_FAMILY),

ONLY (PART_PART),

ONLY (AGENT_AGENT),

ONLY (BRANCH_BRANCH),

ONLY (DATE),

ONLY (CUST_CUST&'_'&AGENT_AGENT&'_'&BRANCH_BRANCH&'_'&PART_PART&'_'&DATE ) AS KEY_SALES_KEY

RESIDENT KEY_TABLE_TEMP

GROUP BY KEY_INV_INVNUM

;

DROP TABLE KEY_TABLE_TEMP;


and althogh my model viewer looks like this:


1.PNG

i still have the same problem...

reddy-s
Master II
Master II

Hi Jhonatan,

You have forgotten to rename the fields:

KEY_TABLE:

//טבלת מפתחות

LOAD

KEY_INV_INVNUM,

ONLY (CUST_CUST) as CUST_CUST,

ONLY (FAMILY_FAMILY) as FAMILY_FAMILY,

ONLY (PART_PART) as PART_PART,

ONLY (AGENT_AGENT) as AGENT_AGENT,

ONLY (BRANCH_BRANCH) as BRANCH_BRANCH,

ONLY (DATE) AS DATE,

ONLY (CUST_CUST&'_'&AGENT_AGENT&'_'&BRANCH_BRANCH&'_'&PART_PART&'_'&DATE ) AS KEY_SALES_KEY

RESIDENT KEY_TABLE_TEMP

GROUP BY KEY_INV_INVNUM

;

DROP TABLE KEY_TABLE_TEMP;


Do you still have duplicated records?

Not applicable
Author

still has it

reddy-s
Master II
Master II

Hi Jhonatan,

I have made a sample example for you to refer to.

Check out if you are doing anything wrong.

- Sangram

Not applicable
Author

Hey everyone i have changed the script to the following:

INV_SALES_TEMP:

LOAD

Date(IVDATE/60/24+32143,'DD/MM/YYYY') AS INV_IVDATE,

IVNUM AS INV_INVNUM,

DOC AS INV_DOC,

IV,

QPRICE AS INV_QPRICE,

TOTPRICE AS INV_TOTPRICE ,

CURRENCY AS INV_CURRENCY,

CUST AS INV_CUST,

DEBIT,

FINAL AS INV_FINAL,

ORD AS INV_ORD,

DISCOUNT AS INV_DISCOUNT,

PAYDATE AS INV_PAYDATE,

FNCTRANS AS INV_FNCTRANS,

BOOKNUM AS INV_BOOKNUM,

AGENT AS INV_AGENT,

"TYPE" AS INV_TYPE,

CHECKING AS INV_CHECKING,

IMPFILE AS INV_IMPFILE,

STORNOFLAG AS INV_STORNOFLAG ,

BRANCH AS INV_BRANCH

FROM [lib://Clinton key/Invoices.qvd]

(qvd)  

where FINAL = 'Y'

and STORNOFLAG <> ('Y')

// and Date (IVDATE/60/24+32143,'DD/MM/YYYY') >= '01/01/2010'

and

(TYPE='A'   //חשבונית מס

OR TYPE='C'   //חשבונית מרכזת

OR TYPE='F'

OR TYPE='E');   //חשבונית מס קבלה;   //חשבונית חול;

//פרטיי תנועת יומן

LEFT JOIN (INV_SALES_TEMP)

LOAD

FNCTRANS AS INV_FNCTRANS,

FNCNUM,

FINAL AS FNC_FINAL,

CURDATE AS FNC_CURDATE,

FNCDATE,

EXCHANGE3 AS FNC_EXCHANGE3,

CURRENCY3 AS FNC_CURRENCY3,

IVNUM AS FNC_IVNUM,

EXCHANGE2 AS FNC_EXCHANGE2

FROM [lib://Clinton key/Fnctrans.qvd]

(qvd) Where FINAL ='Y';

// אני יכול להוריד את זה במידה ואני רוצה חשבוניות זמניות ולא סופיות

//שורות החשבונית

LEFT JOIN (INV_SALES_TEMP)

LOAD

IV,

PART AS IV_PART,

PRICE AS IV_PRICE,

QUANT/1000 AS IV_QUANT,

QPRICE AS IV_QPRICE,

"CURRENCY" AS IV_CURRENCY,

"LINE" AS IV_LINE,

ORDI AS IV_ORDI,

"T$PERCENT" AS IV_PERCENT,

UDATE AS IV_UDATE,

KLINE AS IV_KLINE,

TQUANT/1000 AS IV_TQUANT,

TUNIT,

TRANS AS IV_TRANS,

TOTPERCENT AS IV_TOTPERCENT ,

DUTYCOST AS IV_DUTYCOST,

COSTC AS IV_COSTC,

// IVCOST AS IV_IVCOST,

(IF(ISNULL(IVCOST)=-1,0,IVCOST)) AS IV_IVCOST,

TYPE AS IV_TYPE,

CREDITCOST AS IV_CREDITCOST ,

BRANCH AS IV_BRANCH,

IVDATE AS IV_IVDATE,

ICURRENCY AS IV_ICURRENCY ,

IEXCHANGE AS IV_IEXCHANGE ,

CREDITFLAG AS IV_CREDITFLAG ,

AGENT AS IV_AGENT,

COMMISSION AS IV_COMMISSION

FROM [lib://Clinton key/InvoiceItems.qvd]

(qvd)

WHERE

(TYPE='A'   //חשבונית מס

OR TYPE='C'   //חשבונית מרכזת

OR TYPE='F'   //חשבונית חול

OR TYPE='E' )//חשבונית מס קבלה)

;

// נתונים נוספים לשורת חשבונית

LEFT JOIN (INV_SALES_TEMP)

LOAD

IV,

KLINE AS IV_KLINE,

COSTC2 AS IVA_COSTC2 ,

COSTC3 AS IVA_COSTC3,

COSTC4 AS IVA_COSTC4,

COSTC5 AS IVA_COSTC5,

TOTPRICE AS IVA_TOTPRICE ,

IVTAX AS IVA_IVTAX,

EXTCOST AS IVA_EXTCOST,

EXTCOST2 AS IVA_EXTCOST2,

BONUSFLAG AS IVA_BONUSFLAG

FROM [lib://Clinton key/InvoiceItemsa.qvd]

(qvd);

// isn't oblogated

// נתונים מכרטיס לקוח

LEFT JOIN (INV_SALES_TEMP)

LOAD

CUST_CUST AS INV_CUST,

// CUST_CUSTNAME AS INV_CUSTNAME,

CUST_CUSTDES AS INV_CUSTDES

// במקרה שלנו לא אפקטיבי רוצים את הסוכן מהחשבונית עצמה

// CUST_AGENTNAME

RESIDENT

CUSTOMERS;

// NOT ALL IS isn't oblogated

//נתונים מכרטיס פריט משורשרים לטבלת המכירות

LEFT JOIN (INV_SALES_TEMP)

LOAD

PART_PART AS IV_PART,

PART_COSTQUANT,

PART_COST as IV_PART_COST,

/*PART_FAMILYNAME as IV_FNAME ,*/

PART_SECONDCOST

RESIDENT PARTS;

// נתונים משורות התנועה המקשורת לחשבונית - עלות וכדומה

LEFT JOIN (INV_SALES_TEMP)

LOAD

(IF(ISNULL(TRANS)=-1,0, TRANS)) AS IV_TRANS,

DOC AS TRANS_DOC,

PART AS TRANS_PART,

// QUANT/1000 AS TRANS_QUANT,

(QUANT/1000  *(IF (TYPE='N',(-1),1))) AS TRANS_QUANT,

ORDI AS  TRANS_ORDI,

CUST AS TRANS_CUST,

PRICE AS TRANS_PRICE,

IV,

COST AS TRANS_COST,

// מייצג עלות TRANS_COST

SECONDCOST AS TRANS_SECONDCOST,

BRANCH AS TRANS_BRANCH,

CURRENCY AS TRANS_CURRENCY,

COGFLAG AS TRANS_COSTFLAG,

CURDATE AS TRANS_CURDATE

FROM [lib://Clinton key/Trans.qvd]

(qvd);

//שער מטבע לתאריך החשבונית ולמטבע השורה

Left JOIN (INV_SALES_TEMP)

LOAD  

CUR_CURRENCY AS INV_CURRENCY,

CUR_EXCHANGE

Resident CURRENCIES;

LEFT JOIN (INV_SALES_TEMP)

LOAD

Date (CURREG_CURDATE/60/24+32143,'DD/MM/YYYY')  AS INV_IVDATE,

CURREG_CURRENCY  AS INV_CURRENCY,

CURREG_EXCHANGE

Resident CURREG;

left JOIN (INV_SALES_TEMP)

LOAD 

CUR_EXCHANGE AS CUR_EXCHANGE2

Resident CURRENCIES Where CUR_CURRENCY = -2;

LEFT JOIN (INV_SALES_TEMP)

LOAD

Date ( CURREG_CURDATE/60/24+32143,'DD/MM/YYYY') AS INV_IVDATE,

CURREG_EXCHANGE AS CURREG_EXCHANGE2

Resident CURREG Where CURREG_CURRENCY = -2;

// POSSIBLE EURO COIN

Left JOIN (INV_SALES_TEMP)

LOAD

CUR_EXCHANGE AS CUR_EXCHANGE3

Resident CURRENCIES

Where CUR_CURRENCY =$(vForeignCurrency)

;

// שיניתי כי לא עבד בפעם הראשונה לא זהה את השדה

// POSSIBLE EURO COIN

left JOIN (INV_SALES_TEMP)

LOAD

Date ( CURREG_CURDATE/60/24+32143,'DD/MM/YYYY')AS INV_IVDATE ,

CURREG_EXCHANGE AS CURREG_EXCHANGE3

Resident CURREG

Where CURREG_CURRENCY =$(vForeignCurrency)

;

// LINE 183 IN THE SALES CHART//

LEFT JOIN(INV_SALES_TEMP)

LOAD

ACC_COSTFLAG,

DATE((NUM(MAX(ACC_COSTDATE)))/60/24+32143,'DD/MM/YYYY') AS MAXACC_COSTDATE

RESIDENT ACCDATES

WHERE ACC_COSTDATE<>0

GROUP BY ACC_COSTFLAG;

DROP TABLE ACCDATES;

INV_SALES:

LOAD

Distinct  INV_CUST,

INV_CUSTDES,

INV_IVDATE AS IVDATE,

// INV_TOTPRICE,

// IF (INV_TOTPRICE  > 0  AND DEBIT ='D','pos','neg') AS INV_TOTSIGN,

INV_INVNUM,

// CUST_AGENTNAME AS INV_AGENTNAME,

// במקרה שלנו לא אפקטיבי רוצים את הסוכן מהחשבונית עצמה

//שיניתי בכדי למנוע לופ//

IV_AGENT,

IV_BRANCH,

INV_TYPE,

IV_PART,

// IV_PRICE,

TRANS_COST,

// הוספתי בכדי לקבל את העלות//

IV_QUANT,

IV_QUANT*IF(DEBIT ='C',-1,1) AS RIV_QUANT,

IV_PERCENT,

// IV_FAMILYFTCODE,

// IV_COMMISSION,

// IV_IVCOST,

(IF(ISNULL(IV_TRANS) =-1,0,IV_TRANS)) AS IV_TRANS,

// IV_CREDITFLAG,

// מכפיל לזיכויים//

// ככה מוודאים שחשבוניות זיכוי בר

// (IF(DEBIT='C',(-1),1)) AS IVCAL_CREDIT,

// מחיר בשקלים לשורה

(IV_IVCOST * (IF (DEBIT ='C',(-1),1)) * (IF(INV_CURRENCY = (-1) ,1,IF(FNC_CURRENCY3 = INV_CURRENCY,FNC_EXCHANGE3,

if(CURREG_EXCHANGE > 0 , CURREG_EXCHANGE, CUR_EXCHANGE )))))

AS NIS_TOTPRICE,

// מחיר בדולרים לשורה

(IV_IVCOST * (IF (DEBIT='C',(-1),1)) * (IF(INV_CURRENCY = (-1) ,1,IF(FNC_CURRENCY3=INV_CURRENCY,FNC_EXCHANGE3,

IF(CURREG_EXCHANGE > 0 , CURREG_EXCHANGE, CUR_EXCHANGE ))))) / IF(FNC_EXCHANGE2 > 0 , FNC_EXCHANGE2, IF(CURREG_EXCHANGE2 > 0 ,

CURREG_EXCHANGE2 , CUR_EXCHANGE2))

AS DOLLAR_TOTPRICE,

// // מחיר במטבע שלישי

// POSSIBLE EURO COIN

(IV_IVCOST * (IF (DEBIT='C',(-1),1)) * (IF(INV_CURRENCY = (-1) ,1,IF(FNC_CURRENCY3 = INV_CURRENCY,FNC_EXCHANGE3,

IF(CURREG_EXCHANGE > 0 , CURREG_EXCHANGE, CUR_EXCHANGE ))))) /  IF(CURREG_EXCHANGE3 > 0 ,

CURREG_EXCHANGE3 , CUR_EXCHANGE3)

AS CURRENCY_TOTPRICE,

//חישוב רווח ועלות לשורה

// במרכאות

// TRANS_COST,TRANS_COSTFLAG,DATE(TRANS_CURDATE/60/24 +32143,'DD/MM/YYYY') AS TRANS_CURDATE ,MAXACC_COSTDATE,IV_PART_COST,

//עלות בשקל לתנועה  

// ILS FOR A TRANSCATION

IF  ((IsNull(TRANS_COST)=0 OR TRANS_COSTFLAG = 'M') OR (IV_TRANS <> 0 AND TRANS_CURDATE <=MAXACC_COSTDATE),

TRANS_COST *  (IF (TRANS_QUANT * IV_TQUANT < 0.0,(-1),1)),

(IV_PART_COST * IV_QUANT / PART_COSTQUANT * (IF (DEBIT='C',(-1),1)) *  (IF (IV_CREDITFLAG='Y',0,1)))) AS   NIS_COST,

// //עלות בדולר לשורת תנועה  

IF ((IsNull(TRANS_SECONDCOST)= 0 OR TRANS_COSTFLAG = 'M') OR (IV_TRANS <> 0 AND TRANS_CURDATE <= MAXACC_COSTDATE),

TRANS_SECONDCOST * (IF (TRANS_QUANT * IV_TQUANT  < 0.0,(-1),1)),

PART_SECONDCOST * IV_QUANT / PART_COSTQUANT * (IF (DEBIT ='C',(-1),1)) * (IF (IV_CREDITFLAG = 'Y',0,1))) AS   DOLLAR_COST,

// // // עלות במטבע שלישי לשורת תנועה

// POSSIBLE EURO COIN

(IF ((IsNull(TRANS_SECONDCOST)=0 OR TRANS_COSTFLAG = 'M') OR (IV_TRANS <> 0 AND TRANS_CURDATE <=MAXACC_COSTDATE),

TRANS_COST * (IF (TRANS_QUANT * IV_TQUANT < 0.0,(-1),1)),

IV_PART_COST * IV_QUANT / PART_COSTQUANT * (IF (DEBIT='C',(-1),1)) *  (IF (IV_CREDITFLAG='Y',0,1))) ) /  IF(CURREG_EXCHANGE3 > 0 ,CURREG_EXCHANGE3 , CUR_EXCHANGE3) AS CURRENCY_COST,

// // עלויות ייצוא

// // המשתנה מייצג את השער שברצוננו לקחת האם מתוך תיק הייצוא (שורת החשבונית) או לפי שער המרה לאותו היום

// ILS

(IV_DUTYCOST * (IF (DEBIT='C',(-1),1)) * (IF(($(vEXPORTEXCHANGE)=1) AND IV_DUTYCOST <> 0,IV_IEXCHANGE,(IF(INV_CURRENCY = (-1) ,1,IF(FNC_CURRENCY3=INV_CURRENCY,FNC_EXCHANGE3,

if(CURREG_EXCHANGE > 0 , CURREG_EXCHANGE, CUR_EXCHANGE ))))))) AS NIS_DUTYCOST,

// DOLLAR

(IV_DUTYCOST * (IF (DEBIT='C',(-1),1)) * (IF(($(vEXPORTEXCHANGE)=1) AND IV_DUTYCOST <> 0,IV_IEXCHANGE,(IF(INV_CURRENCY = (-1) ,1,IF(FNC_CURRENCY3=INV_CURRENCY,FNC_EXCHANGE3,

if(CURREG_EXCHANGE > 0 , CURREG_EXCHANGE, CUR_EXCHANGE )))))))/ IF(FNC_EXCHANGE2 > 0 , FNC_EXCHANGE2, IF(CURREG_EXCHANGE2 > 0 ,

CURREG_EXCHANGE2 , CUR_EXCHANGE2))  As  DOLLAR_DUTYCOST,

// POSSIBLE EURO COIN

(IV_DUTYCOST * (IF (DEBIT='C',(-1),1)) * (IF(($(vEXPORTEXCHANGE)=1) AND IV_DUTYCOST <> 0,IV_IEXCHANGE,(IF(INV_CURRENCY = (-1) ,1,IF(FNC_CURRENCY3=INV_CURRENCY,FNC_EXCHANGE3,

if(CURREG_EXCHANGE > 0 , CURREG_EXCHANGE, CUR_EXCHANGE )))))))/  IF(CURREG_EXCHANGE3 > 0 ,CURREG_EXCHANGE3 , CUR_EXCHANGE3) As  CURRENCY_DUTYCOST,

//עלויותת נוספות

//ILS

(IVA_EXTCOST * (IF (DEBIT='C',(-1),1)) *  (IF(IV_CREDITFLAG ='Y',0,1)))  AS NIS_EXTCOST,

// DOLLAR

(IVA_EXTCOST * (IF (DEBIT='C',(-1),1)) *  (IF(IV_CREDITFLAG ='Y',0,1))) / IF(FNC_EXCHANGE2 > 0 , FNC_EXCHANGE2, IF(CURREG_EXCHANGE2 > 0 ,

CURREG_EXCHANGE2 , CUR_EXCHANGE2))  As  DOLLAR_EXTCOST,

// POSSIBLE EURO COIN

(IVA_EXTCOST * (IF (DEBIT='C',(-1),1)) *  (IF(IV_CREDITFLAG ='Y',0,1))) / IF(CURREG_EXCHANGE3 > 0 ,CURREG_EXCHANGE3 , CUR_EXCHANGE3)  As  CURRENCY_EXTCOST,

/*

*/

//מפתח בטבלת מכירות

INV_CUST&'_'&IV_AGENT&'_'&IV_BRANCH&'_'&IV_PART&'_'&INV_IVDATE AS SALES_KEY

RESIDENT INV_SALES_TEMP

WHERE

(INV_TYPE='A'   //חשבונית מס

OR INV_TYPE='C'   //חשבונית מרכזת

OR INV_TYPE='F'   //חשבונית חול

OR INV_TYPE='E' )

// and Date (INV_IVDATE/60/24+32143,'DD/MM/YYYY') >= '01/01/2010'

// ORDER BY

// IV_AGENT,

// IV_PART,

// INV_IVDATE

;

DROP TABLE INV_SALES_TEMP;

and the most important thing was to do: Distinct  INV_CUST,

thank you all for helping!