Hemil Gandhi Ответов: 1

Веб-приложение запроса выверки VB.NET


Привет друг, я пытаюсь создать веб-приложение для сверки учетных записей и теперь я застрял после импорта данных. У меня есть ниже упомянутый запрос, который может индивидуально отделить общую строку, но я хочу применить это ко всей таблице, пожалуйста, помогите.

У меня есть две таблицы с данными повествования,дебет,кредит и матч.
В одной таблице повествование выглядит так
NEFT/N292190958364579/00019049/NILESH R DESAI

а в другой таблице повествование есть
To-Trf. RTGS : BAJAJ FINANCE LIMITED 191 Cr A/c No 1011132001850 UTR N292190958345310

Я хочу соответствовать N292190958345310 в обеих таблицах и обновление совпадают как 0.

Если какая-либо таблица имеет повторяющееся значение, то ничего не должно обновляться. структура повествования фиксирована.

Что я уже пробовал:

declare @mysql VARCHAR(MAX);


set @mySQL ='To-Trf. RTGS : BAJAJ FINANCE LIMITED 191 Cr A/c No 1011132001850 UTR N292190958345310'

Select (Case When PATINDE'%Beneficiary%', @mySQL) <> 0 Then SUBSTRING(@mySQL, PATINDE'%UTR%', @mySQL) + 4,CHARINDE'Beneficiary',@mySQL)-CHARINDE'UTR',@mySQL)-4) Else Substring(@mySQL, PATINDE'%UTR%', @mySQL) + 4, LEN(@mySQL)) End) As NewString


set @mySQL ='NEFT/N292190958364579/00019049/NILESH R DESAI'
SELECT SUBSTRING(@mySQL,CHARINDE'/',@mySQL)+1, CHARINDE'/',@mySQL,CHARINDE'/',@mySQL)+1) - CHARINDE'/',@mySQL)-1)

Maciej Los

- Я хочу соответствовать ... и обновить матч как 0" - что вы имеете в виду?
В обоих столиках?
Я не вижу "N292190958345310" в таблице № 1.

1 Ответов

Рейтинг:
5

Maciej Los

Пожалуйста, сначала прочтите мой комментарий к этому вопросу.

Я создал пример сценария. Не стесняйтесь менять его в соответствии с вашими потребностями.

DECLARE @table1 TABLE(narration NVARCHAR(100), [match] int)
INSERT INTO @table1(narration)
VALUES('NEFT/N292190958364579/00019049/NILESH R DESAI'),
('NEFT/N292190958345310/00019049/NILESH H DELHI'),
('NEFT/N292190958345325/00019049/NILESH O BARAI')

DECLARE @table2 TABLE(narration NVARCHAR(100), [match] int)
INSERT INTO @table2(narration)
VALUES('To-Trf. RTGS : BAJAJ FINANCE LIMITED 191 Cr A/c No 1011132001850 UTR N292190958345310'),
('Ot-Rtf. RSGS : DESAI FINANCE LIMITED 195 Cr A/c No 1011132001880 UTR N292190958345380'),
('Do-Zff. RTTS : BARAI FINANCE LIMITED 111 Cr A/c No 1011132001855 UTR N292190958345315')

DECLARE @common TABLE(narr1 NVARCHAR(100), s1 NVARCHAR(100), s2 NVARCHAR(100), narr2 NVARCHAR(100))

INSERT INTO @common(narr1, s1, s2, narr2)
SELECT t1.narration as narr1, t1.s1, t2.s2, t2.narration AS narr2
FROM
(
	SELECT narration, SUBSTRING(narration, CHARINDEX('/', narration)+1, CHARINDEX('/', narration, CHARINDEX('/', narration)+1)-CHARINDEX('/', narration)-1) AS s1
	FROM @table1
) t1 INNER JOIN
(
	SELECT narration, RIGHT(narration, CHARINDEX(' ', REVERSE(narration))-1) AS s2
	FROM @table2
) t2 ON t1.s1 = t2.s2


UPDATE t1
	SET t1.[match] = 1 
FROM @table1 t1 INNER JOIN @common t2
	ON t1.narration = t2.narr1 

SELECT *
FROM @table1 


Примечание: Я использую временные таблицы (хранящиеся в переменных).
@common таблица используется для сбора общих данных, а затем для обновления таблицы № 1.
Таким же образом можно обновить таблицу № 2.

Удачи вам!

Результат:
narration	                                   match
NEFT/N292190958364579/00019049/NILESH R DESAI	NULL
NEFT/N292190958345310/00019049/NILESH H DELHI	1
NEFT/N292190958345325/00019049/NILESH O BARAI	NULL


Hemil Gandhi

Эй, приятель, теперь я застрял с другой проблемой, несколько раз @common появляется дважды в одной таблице и один раз в другой таблице. Теперь, как с этим бороться??, ни одна запись не должна обновляться в обеих таблицах.

Maciej Los

Выбор DISTINCT должен помочь.

Hemil Gandhi

Я использую приведенный ниже запрос для сопоставления и обновления записи. Plz руководство по этому вопросу

Обновление t1 набор t1.[Recon] = 1 ,t1.[ReconDT]=getdate() выполняет от TEMP_AXIS TEMP_SBPP Т1 внутреннее соединение Т2 по Т1.Утр = Т2.Утр и T1.Стороны ОРДО='СГ' и литые(Т1.Сумма как decimal(10,2))=приведение(Т2.доктор как decimal(10,2)) и Т1.[Recon] - это null и t2.[Разведка] равна нулю

Maciej Los

Как этот вопрос связан с моим ответом?
Как я уже упоминал, если вы хотите получить четкие данные, вам нужно использовать ключевое слово DISTINCT (вы можете использовать подзапрос для такого требования).