Excel VBA-如何透视sql结果

Excel VBA-如何透视sql结果,sql,vba,excel,Sql,Vba,Excel,我正在用excelvba进行SQL查询。 下面是我正在使用的SQL字符串: SELECT DESC, SEQNUM, INSTRUCTION FROM TABLE WHERE DESC = 'ITEM1' AND SEQNUM <=3 如何使查询结果看起来像这样 DESC SEQNUM1 SEQNUM2 SEQNUM3 ITEM1 002.000 137.000 005.000 像这样,前提是每个都有一个DESC-SEQNUM: SELECT DESC,

我正在用excelvba进行SQL查询。 下面是我正在使用的SQL字符串:

SELECT DESC, SEQNUM, INSTRUCTION FROM TABLE
WHERE DESC = 'ITEM1' AND SEQNUM <=3
如何使查询结果看起来像这样

DESC   SEQNUM1    SEQNUM2    SEQNUM3
ITEM1  002.000    137.000    005.000

像这样,前提是每个都有一个DESC-SEQNUM

SELECT DESC, S1.INSTRUCTION, S2.INSTRUCTION, S3.INSTRUCTION
FROM TABLE AS S1 INNER JOIN 
TABLE AS S2 ON S1.DESC = S2.DESC 
INNER JOIN TABLE AS S3 ON S3.DESC=S1.DESC
SELECT DESC, S1.INSTRUCTION, S2.INSTRUCTION, S3.INSTRUCTION
FROM (TABLE AS S1 LEFT JOIN 
TABLE AS S2 ON S1.DESC = S2.DESC) 
LEFT JOIN TABLE AS S3 ON S3.DESC=S1.DESC
对于Access SQL,您可能需要封闭内部联接,如下所述: Access SQL的结果将是:

SELECT DESC, S1.INSTRUCTION, S2.INSTRUCTION, S3.INSTRUCTION
FROM (TABLE AS S1 INNER JOIN 
TABLE AS S2 ON S1.DESC = S2.DESC) 
INNER JOIN TABLE AS S3 ON S3.DESC=S1.DESC
如注释中所述,这假设没有缺少对DESC的分配。如果有,则需要将内部联接更改为左联接,如下所示:

SELECT DESC, S1.INSTRUCTION, S2.INSTRUCTION, S3.INSTRUCTION
FROM TABLE AS S1 INNER JOIN 
TABLE AS S2 ON S1.DESC = S2.DESC 
INNER JOIN TABLE AS S3 ON S3.DESC=S1.DESC
SELECT DESC, S1.INSTRUCTION, S2.INSTRUCTION, S3.INSTRUCTION
FROM (TABLE AS S1 LEFT JOIN 
TABLE AS S2 ON S1.DESC = S2.DESC) 
LEFT JOIN TABLE AS S3 ON S3.DESC=S1.DESC

如果支持-执行自完全外部联接,ANSI SQL语法如下:

select coalesce(t1.desc, t2.desc, t3.desc),
       t1.INSTRUCTION SEQNUM1,
       t2.INSTRUCTION SEQNUM2,
       t3.INSTRUCTION SEQNUM3
from (select * from TABLE where SEQNUM = 1) t1
  full outer join (select * from TABLE where SEQNUM = 2) t2 on t1.desc = t2.desc
  full outer join (select * from TABLE where SEQNUM = 3) t3 on t2.desc = t3.desc

您使用的是Access还是SQL?这行吗?我正在Excel中编写VBA代码,它将从oracle数据库查询数据,并将结果返回到活动工作表进行分析。由于数据分析将由VBA完成,因此在excel中创建透视表没有帮助…将使用提供的示例数据,但在缺少一个(或多个)序列时不会返回任何内容。正确。但这只是在需要时将相关的内部联接更改为左联接的问题@cml没有提供任何额外的输入,因为它假设可能需要这样做。我们尝试了所有3种方法,但没有一种有效。无论如何,谢谢你:)