【发布时间】:2020-10-29 07:26:44
【问题描述】:
最近,我正在研究 SQL。
我有一个基本但模棱两可的问题如下: 给定一个表A,其中包括交易信息,如交易编号(TRX_NO)、客户名称(CUS_NAME)、客户代码(CUS_CODE)和交易时间(TRX_TIME)。注意,对于每一笔交易,都会有记录。比如Mary在20201024、20201025、20201031去店里,那么这个表里有3条记录。
考虑到这一点,如果使用 temp_table 或 cursor,我如何将所有首次数据插入另一个表 B?
更具体的例子,如果当前表A存储了Mary的3条记录,那么表B应该保存20201024的记录。我该如何实现呢?
我尝试过使用光标,但似乎不是一个好的尝试:
DECLARE var_VIP VARCHAR2(20);
CURSOR cur_FIRST IS
SELECT A.CUS_CODE
FROM TABLEA A
ORDER BY CUS_CODE, TRX_DATE, TRX_TIME;
--OPEN AND START CURSOR
BEGIN
OPEN cur_FIRST;
LOOP
FETCH cur_FIRST INTO var_VIP;
EXIT WHEN cur_FIRST%NOTFOUND;
INSERT INTO TABLEB B
(SELECT*
FROM TABLEA A
ORDER BY TRX_DATE, TRX_TIME);
END LOOP;
CLOSE cur_FIRST;
非常感谢您的帮助!!!
【问题讨论】:
-
您的 DBMS 是 Oracle 还是 SQL Server?语法建议使用第二个。
-
@BarbarosÖzhan 哦,对不起,我没认出来。我正在使用 PL/SQL 开发人员
-
PL/SQL 开发者用于连接 MySQL?
-
您删除了标签
oracle,但没有标记相关的DBMS。 -
@BarbarosÖzhan 哦,我明白了。我对 SQL 世界很陌生......但是,感谢所有提醒和分享您的知识