asp_boy,您的意思是?
74分是我的全部家当了。

解决方案 »

  1.   

    油品是固定的,adailee的高见请说.
      

  2.   

    我要把查询的结果导入access表的,所以列名我可以随便的。站2如果没有柴油,可以把销售量定为0。
      

  3.   

    sql语句中用
    union连接不行吗??
      

  4.   

    思路是这样的。
    CREATE TABLE OILS
    ( Station varchar(100),
      Fuel Varchar(100),
      ACount INT
    )
    SELECT
      pStation=A.Station,
      pOil1=(SELECT b.ACount FROM OILS b WHERE b.Station=A.Statios AND b.Fuel='材油')
      pOil2=(SELECT b.ACount FROM OILS b WHERE b.Station=A.Statios AND b.Fuel='汽油')
      ...  
    FROM
      OILS A
      

  5.   

    SELECT
      DISTINCT A.Station,
      pOil1=(SELECT ACount FROM OILS b WHERE b.Station=A.Statios AND b.Fuel='材油'),
      pOil2=(SELECT ACount FROM OILS b WHERE b.Station=A.Statios AND b.Fuel='汽油')
    FROM
      OILS A
      

  6.   

    显示第三行select错误,正在调试...
    过会儿送分感谢。
      

  7.   

    再请教adailee(不谈恋爱的铅笔):语句执行后只显示站1,站2,不显示别的东西了,究竟是什么原因呢??
      

  8.   

    把你的数据库结构导出为标准的SQL语句发给我,我来解决。
    [email protected]
      

  9.   

    zjj_horse(小鱼儿) :
      我现在要走了。中午我查收邮件,晚上在给你答案。
      

  10.   

    实现的方法有好几个,但我觉得ai_daoluan(捣乱)方法最好,易理解和维护,更容易实现,我也曾经碰到过这样的问题就是用这种方法做的。在Delphi中也可以用DataSet直接做,但不是好方法。
      

  11.   

    select A1 as 站台, sum(case when A2='柴油' then A3 else 0 end) as 柴油,sum(case when A2='汽油' then A3 else 0 end) as 汽油 From Table Group by A1
      

  12.   

    用kals这个语句就可以啦!还要什么方法呢?
      

  13.   

    這是交叉表的典型﹐如果是ACCESS等支持交叉表的資料庫﹐可以用Transfer 語句實現
      

  14.   

    用自身连接查询
    eg;
    create table T
    (A1,
     A2,
     A3
    )
    select first.A1,first.A3,second.A3
    from T first,T second
    where first.A1 = second.A2
      

  15.   

    在oracle(access)中,可以用decode()函数实现,方法同 kals(卡斯) 
      

  16.   

    我建议你使用Access的交叉表查询向导,应该很快解决
      

  17.   

    qflxh的查询是否应该这样写select first.A1,first.A3,second.A3
    from T first,T second
    where first.A1 = second.A1  and first.a2=" 柴油" and second.a2="汽油"
      

  18.   

    用kals(卡斯)的方法吧,易理解和维护。
      

  19.   

    select   A1 ,
             sum(case when A2 = 柴油 then A3 else 0 end ) as 柴油, 
             sum(case when A2 = 汽油 then A3 else 0 end ) as 汽油
    from temp
    group by A1,A3:)看看吧,只要你能列举 油的种类就可以了 
      

  20.   

    gongjan(gong)的办法不错, 这是SQL Server数据库生成交叉透视表的经典方法。
      

  21.   

    select (tableA.a+table.B)as c from ....
      

  22.   

    交叉表,Access中有现成的command,其他的只能通过建表实现了。
      

  23.   

    select a1, Sum(a2) as a2cou , sum(a3) as a3cou from tablename where a1='站1'
      

  24.   

    select 站名,SUM(柴油)AS 柴油,SUM(汽油) AS 汽油 FROM (SELECT A1 AS 站名, (CASE WHEN A2 = '柴油' THEN A3 ELSE 0 END) AS 柴油, 
                  (CASE WHEN A2 = '汽油' THEN A3 ELSE 0 END) AS 汽油
            FROM table1) derivedtbl GROUP BY 站名--Table1为原始表名;在SQL2000中调试通过
      

  25.   

    SELECT A1, SUM(CASE WHEN A2 = '柴油' THEN A3 ELSE 0 END) AS 柴油, 
          SUM(CASE WHEN A2 = '汽油' THEN A3 ELSE 0 END) AS 汽油
    FROM TABLE1
    GROUP BY A1
      

  26.   

    select  A1 ,
            柴油=when A2 = 柴油 then A3 else 0 end , 
            汽油=when A2 = 汽油 then A3 else 0 end 
    from temp
      

  27.   

    我建议你可以在sql写存储过程,使用分组,提取数据,再合并数据,这样就分成灵活,可以实现你要的功能
      

  28.   

    如: A1      A2      A3      
        站1    柴油    200 
        站1    汽油    300
    通过sql语句把站1的柴油和汽油的销售量并为一行。
    上例并为
        站1  200  300太简单不过的一个问题:select a.A1, a.A3 as '才油价格', b.a3 as '汽油价格' FROM SOURCETABLE a, SOURCETABLE b WHERE a.A1 = b.A1 and a.A2 = '柴油' and b.A2 = '汽油'如果有其他的条件,都写到WHERE条件中,防止产生交叉联接结果集。
      

  29.   

    我认为正要使用交叉联接结果集,这样栏目中才能出现不定数量的产品名称
    sql语句为
    TRANSFORM Avg(A3) AS AvgA3
    SELECT A1
    FROM YourTable
    GROUP BY A1
    PIVOT A2;当然函数Avg可以根据需要选择Max,Min,Sum等
      

  30.   

    hnxxy: 看来你对CROSS JOIN(交叉联接)没有充分理解