SQL 问题

xqy 2011-05-21 09:50:55

left join 表一 和表二 的时候 会报错说: SQL0204N "ADMINISTRATOR.表一" 是未定义的名称。

select uniontable.*,表一.col2,表二.col2 from

select * from (
select table1.col1,table1.col2,table2.col2 from table1 inner join table2 on table1.col1=table2.col2 ) as表一
union
select * from (
select table3.col1,table1.col2,table4.col2 from table1 inner join table2 on table3.col1=table4.col2 ) as表二
) as uniontable

left join 表1 on 表一.col1 = uniontable.col1
left join 表2 on 表二.col1 = uniontable.col1
...全文
150 14 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
rcom10002 2011-06-01
  • 打赏
  • 举报
回复
SELECT OUTPUT_OF_GROUP."GROUP", OUTPUT_OF_08."SUM" SUM08, OUTPUT_OF_09."SUM" SUM09 FROM
(
SELECT DISTINCT "GROUP" FROM A
) OUTPUT_OF_GROUP
LEFT JOIN
(
SELECT "GROUP", SUM(NVL(OUTPUT, 0)) SUM FROM A
WHERE A.YEAR = '08'
GROUP BY "GROUP"
) OUTPUT_OF_08 ON OUTPUT_OF_GROUP.GROUP = OUTPUT_OF_08.GROUP
LEFT JOIN
(
SELECT "GROUP", SUM(NVL(OUTPUT, 0)) SUM FROM A
WHERE A.YEAR = '09'
GROUP BY "GROUP"
) OUTPUT_OF_09 ON OUTPUT_OF_GROUP.GROUP = OUTPUT_OF_09.GROUP
xqy 2011-05-24
  • 打赏
  • 举报
回复
ooooo

沉了么
ACMAIN_CHM 2011-05-22
  • 打赏
  • 举报
回复
[Quote]我就想用 刚查的表一啊[/Quote]对最外层来说,根本就不存在表一 只有uniontable
xqy 2011-05-22
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 acmain_chm 的回复:]
select uniontable.*,表一.col2,表二.col2 from

select * from (
select table1.col1,table1.col2,table2.col2 from table1 inner join table2 on table1.col1=table2.col2 ) as 表一
union
select * from (
sel……
[/Quote]

改成表1 是什么意思?

我就想用 刚查的表一啊
xqy 2011-05-22
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 zhaojianmi1 的回复:]
不一样,有空格
[/Quote]

不是空格的 问题

这个句子还有问题
xqy 2011-05-22
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 mr_bean 的回复:]
看 表1 表2的模式名
其次 好像不允许双字节的表名
[/Quote]

我测试的时候是用的abc
xqy 2011-05-22
  • 打赏
  • 举报
回复
经验不足,受教受教!

下面重新描述问题,请多多指教。

想得到 各个分组 不同年份的产量:

SQL code db2>


create table A (id integer,group char(3),year char(4),output integer);

insert into A values (101,'1','08',108);
insert into A values (102,'2','08',208);
insert into A values (103,'1','08',308);

insert into A values (104,'1','09',109);
insert into A values (105,'2','09',209);
insert into A values (106,'2','09',309);
insert into A values (107,'3','09',409)

/*

+----------+-----------+----------+-----------+
| id | group | year | output |
+----------+-----------+----------+-----------+
| 101 | 1 | 08 | 108 |
| 102 | 2 | 08 | 208 |
| 103 | 1 | 08 | 308 |
| 104 | 1 | 09 | 109 |
| 105 | 2 | 09 | 209 |
| 106 | 2 | 09 | 309 |
| 107 | 3 | 09 | 409 |
+----------+-----------+----------+-----------+

要得到这样的表
----------->

+-----------+----------+-----------+
| group | output08 | output09 |
+-----------+----------+-----------+
| 1 | 416 | 109 |
| 2 | 208 | 518 |
| 3 | | 409 |
+-----------+----------+-----------+

*/
Mr_Bean 2011-05-22
  • 打赏
  • 举报
回复
看 表1 表2的模式名
其次 好像不允许双字节的表名
ACMAIN_CHM 2011-05-22
  • 打赏
  • 举报
回复
(不要高估你的汉语表达能力或者我的汉语理解能力)
建议你列出你的表结构,并提供测试数据以及基于这些测试数据的所对应正确结果。
参考一下这个贴子的提问方式http://topic.csdn.net/u/20091130/20/8343ee6a-417c-4c2d-9415-fa46604a00cf.html

1. 你的 create table xxx .. 语句
2. 你的 insert into xxx ... 语句
3. 结果是什么样,(并给以简单的算法描述)
4. 你用的数据库名称和版本(经常有人在MS SQL server版问 MySQL)

这样想帮你的人可以直接搭建和你相同的环境,并在给出方案前进行测试,避免文字描述理解上的误差。

xqy 2011-05-22
  • 打赏
  • 举报
回复
那该怎么办。。

只能把那个表再查一遍么

zhaojianmi1 2011-05-21
  • 打赏
  • 举报
回复
不一样,有空格
ACMAIN_CHM 2011-05-21
  • 打赏
  • 举报
回复
select uniontable.*,表一.col2,表二.col2 from

select * from (
select table1.col1,table1.col2,table2.col2 from table1 inner join table2 on table1.col1=table2.col2 ) as 表一
union
select * from (
select table3.col1,table1.col2,table4.col2 from table1 inner join table2 on table3.col1=table4.col2 ) as 表二
) as uniontable
left join 表1 on 表1.col1 = uniontable.col1
left join 表2 on 表2.col1 = uniontable.col1
xqy 2011-05-21
  • 打赏
  • 举报
回复
??? 你回复的 跟我的是一样的啊
zhaojianmi1 2011-05-21
  • 打赏
  • 举报
回复
select uniontable.*,表一.col2,表二.col2 from

select * from (
select table1.col1,table1.col2,table2.col2 from table1 inner join table2 on table1.col1=table2.col2 ) as 表一
union
select * from (
select table3.col1,table1.col2,table4.col2 from table1 inner join table2 on table3.col1=table4.col2 ) as 表二
) as uniontable

left join 表1 on 表一.col1 = uniontable.col1
left join 表2 on 表二.col1 = uniontable.col1

5,891

社区成员

发帖
与我相关
我的任务
社区描述
IBM DB2 是美国IBM公司开发的一套关系型数据库管理系统,它主要的运行环境为UNIX(包括IBM自家的AIX)、Linux、IBM i(旧称OS/400)、z/OS,以及Windows服务器版本
社区管理员
  • DB2
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧