Hi , I need to update the observations in a table based on most recent. Below is the sample of what I have in table.
| Original_A_GSTIN | Original_A_RET_PERIOD | Original_A_B2BI_CTIN | Original_A_RET_DATE | Original_A_B2BI_IDT | Original_A_B2BI_VAL | Amended_A_B2BI_VAL | Original_A_B2BI_NUM | Amended_A_B2BI_NUM | Original_A_B2BI_RT | Amended_A_B2BI_RT | Original_A_B2BI_TXVAL | Amended_A_B2BI_TXVAL | Original_A_B2BI_IAMT | Amended_A_B2BI_IAMT | Original_A_B2BI_CAMT | Amended_A_B2BI_CAMT | Original_A_B2BI_SAMT | Amended_A_B2BI_SAMT | Original_A_B2BI_CSAMT | Amended_A_B2BI_CSAMT | Original_A_B2BI_DIFF_PERCENT | Amended_A_B2BI_DIFF_PERCENT | Amended_A_B2BI_SECTION | Original_A_B2BI_SECTION | Amended_A_RET_PERIOD |
| 27AAAAA0042K1Z7 | 122017 | 07AHYPA1487G1Z2 | 16Feb2018 | 02Nov2017 | 117528.00 | 117528.00 | 1801 | 1801 | 18.00 | 18.00 | 99600.00 | 99600.00 | 0.00 | 17928.00 | 8964.00 | 0.00 | 8964.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 9A | 4A | 032019 |
| 27AAAAA0042K1Z7 | 122017 | 07AHYPA1487G1Z2 | 16Feb2018 | 02Nov2017 | 84960.00 | 84960.00 | 1801 | 1801 | 18.00 | 18.00 | 72000.00 | 72000.00 | 0.00 | 12960.00 | 6480.00 | 0.00 | 6480.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 9A | 4A | 032019 |
| 27AAAAA0042K1Z7 | 032018 | 27AIEPR1584Q1ZH | 01May2018 | 04Jan2018 | 20650.00 | 20650.00 | 1801 | 1801 | 18.00 | 18.00 | 17500.00 | 17500.00 | 0.00 | 3150.00 | 1575.00 | 0.00 | 1575.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 9A | 4A | 032019 |
| 27AAAAA0042K1Z7 | 032018 | 27AIEPR1584Q1ZH | 01May2018 | 12Jan2018 | 4130.00 | 8260.00 | 1801 | 1801 | 18.00 | 18.00 | 3500.00 | 7000.00 | 0.00 | 0.00 | 315.00 | 630.00 | 315.00 | 630.00 | 0.00 | 0.00 | 0.00 | 0.00 | 9A | 4A | 032019 |
My group is based on Original_A_GSTIN, Original_A_RET_PERIOD,Original_A_B2BI_CTIN
and Original_A_B2BI_IDT so if all of these matches.( E.g. First two observations ) then I need to update the values of
Original_A_B2BI_VAL = Amended_A_B2BI_VAL
Original_A_B2BI_NUM = Amended_A_B2BI_NUM
Original_A_B2BI_RT= Amended_A_B2BI_RT
Original_A_B2BI_TXVAL = Amended_A_B2BI_TXVAL
Original_A_B2BI_IAMT = Amended_A_B2BI_IAMT
Original_A_B2BI_CAMT = Amended_A_B2BI_CAMT
Original_A_B2BI_SAMT = Amended_A_B2BI_SAMT
Original_A_B2BI_CSAMT = Amended_A_B2BI_CSAMT
Original_A_B2BI_DIFF_PERCENT = Amended_A_B2BI_DIFF_PERCENT
And then remove the last record (Basically replace original records with last.record). This is how I want the output
| Original_A_GSTIN | Original_A_RET_PERIOD | Original_A_B2BI_CTIN | Original_A_RET_DATE | Original_A_B2BI_IDT | Original_A_B2BI_VAL | Amended_A_B2BI_VAL | Original_A_B2BI_NUM | Amended_A_B2BI_NUM | Original_A_B2BI_RT | Amended_A_B2BI_RT | Original_A_B2BI_TXVAL | Amended_A_B2BI_TXVAL | Original_A_B2BI_IAMT | Amended_A_B2BI_IAMT | Original_A_B2BI_CAMT | Amended_A_B2BI_CAMT | Original_A_B2BI_SAMT | Amended_A_B2BI_SAMT | Original_A_B2BI_CSAMT | Amended_A_B2BI_CSAMT | Original_A_B2BI_DIFF_PERCENT | Amended_A_B2BI_DIFF_PERCENT | Amended_A_B2BI_SECTION | Original_A_B2BI_SECTION | Amended_A_RET_PERIOD |
| 27AAAAA0042K1Z7 | 122017 | 07AHYPA1487G1Z2 | 16-Feb-18 | 02-Nov-17 | 84960 | 84960 | 1801 | 1801 | 18 | 18 | 72000 | 72000 | 0 | 12960 | 6480 | 0 | 6480 | 0 | 0 | 0 | 0 | 0 | 9A | 4A | 32019 |
| 27AAAAA0042K1Z7 | 32018 | 27AIEPR1584Q1ZH | 01-May-18 | 04-Jan-18 | 20650 | 20650 | 1801 | 1801 | 18 | 18 | 17500 | 17500 | 0 | 3150 | 1575 | 0 | 1575 | 0 | 0 | 0 | 0 | 0 | 9A | 4A | 32019 |
I have tried sorting using these 4 variables but somehow I am unable to get combination together. Any help is really appreciated.
According to your definition Original_A_B2BI_CTIN should fit in both rows,
so is it a typo showing different values on line 1 and 2 ?
@Swapnil_21 wrote:
Yes sir ..its a typeo
I have edited your original post accordingly with hope to deal with it later.
Comparing your wanted results to the input data, there is no any UPDATE of data, but
just keeping the last row of a group. Check results of next code:
data want;
set have;
by Original_A_GSTIN Original_A_RET_PERIOD
Original_A_B2BI_CTIN Original_A_B2BI_IDT;
if last.Original_A_B2BI_IDT;
run;
It's finally time to hack! Remember to visit the SAS Hacker's Hub regularly for news and updates.
Learn how use the CAT functions in SAS to join values from multiple variables into a single value.
Find more tutorials on the SAS Users YouTube channel.
Ready to level-up your skills? Choose your own adventure.