发新话题
打印

[数据库] 请帮我看看这交叉查询的SQL语句怎样写,我用的是Access数据库

请帮我看看这交叉查询的SQL语句怎样写,我用的是Access数据库


有2个表:
       其中表A有一字段:单号
       表B有三这段:单号、项目号、项目金额


现需做一个交叉查询结果为:
    表A单号    项目号0    项目号1    项目号2    项目号3
00500001    4000
00500002    5546.18     978.77
00500003    19270      
00500004    170.25       30.55        284.65     35
00500005    550
00500006    83.54         15.67         33.7   


请教这SQL语句怎样写,我是用Access数据库

TOP

select a.单号,b.项目号0, b.项目号1b.项目号2,b. 项目号3 from 表A a  left join 表B b on a.单号=b.单号
换个头像,看见广告就眼红,直接封ID。

TOP

Nothing 我还是做不出来,我把需求重发给你,还把数据库也发给你,麻烦请你帮我做一下.

表 Invoice 有一字段:Invoice_No
表 Invoice_Dtl 有三字段:Invoice_No、Item_No、Item_Money现需做一个交叉查询结果为:
Invoice_No       0                  1                 2               3
00500001       4000
00500002       5546.18        978.77
00500003       19270      
00500004       170.25          30.55          284.65       35
00500005       550
00500006       83.54            15.67          33.7   
请教这SQL语句怎样写,我是用Access数据库

附件

Invoice.rar (311.81 KB)

2008-5-11 23:05, 下载次数: 466

TOP

原来是这样,这个你要的结果一条SQL语句是不可能实现的,你还是写程序处理吧。
可以使用两个recordset
换个头像,看见广告就眼红,直接封ID。

TOP

你的要求是不是这样:将表A中每个单号在表B中每个项目的金额作为一列,如果这样可以试试下面的语句。
Select 单号 as 表A项目号,
isnull(Select 项目金额 from 表b as b where a.单号=b.单号 and b.项目号='1'),0) as 1,
isnull(Select 项目金额 from 表b as b where a.单号=b.单号 and b.项目号='2'),0) as 2,
isnull(Select 项目金额 from 表b as b where a.单号=b.单号 and b.项目号='3'),0) as 3
from 表A as a
group by 单号
Order By 单号

TOP

发新话题