我是 SQL 的新手并尝试插入表 A,表 B 中的值使用选择自动检索列,并使用自定义字符串作为手动值插入其中一列。
两个表都有相同的列,其中表A由表B提供:
来源 | 价值 | 类型 | 类别 | 子类别 | 详情 |
---|---|---|---|---|---|
卡片 | 1.00 | 收入 | 税 | 政府 | 政府费用 |
卡片 | 2.00 | 收入 | 家 | 电话 | 手机 |
钱包 | 3.00 | 收入 | 家 | 功率 | 电力公司 |
我正在尝试使用以下方法从表 B 填充表 A:
INSERT INTO tableA(源、值、类型、类别、子类别、详细信息) VALUES ('card & wallet', (SELECT SUM(Value), Type, Category, SubCategory, Details FROM tableB WHERE Type='income' GROUP BY Category, SubCategory ORDER BY SUM(Value) DESC));
结果,我收到错误:“解析错误:6 列有 2 个值”。
因为我想用手动字符串“card & wallet”替换列“Source”的行并自动加载其余部分,似乎它将 select 中的列视为单个值,而不是分别考虑 5 列。
如果我按以下方式运行它会起作用:
INSERT INTO tableA(源、值、类型、类别、子类别、详细信息) 选择源、SUM(值)、类型、类别、子类别、详细信息来自 tableB WHERE Type='income' GROUP BY Category、SubCategory ORDER BY SUM(Value)DESC;
感谢任何提示。