none
SQL 看看有什么方法替换 RRS feed

  • 问题


  • SELECT A.NOND,A.DTE,B.GOLD,B.TYPET FROM (SELECT NOND,MAX(YEAR*10000 + MONTH*100 +DAY) AS FDT         FROM sys.flaydb group by nond)A,
                                            (SELECT NOND,GOLD,TYPET,YEAR*10000 + MONTH*100 +A.DAY AS EDT FROM sys.flaydb ) AS A2
                                      WHERE A2.EDT=A.FDT AND A2.NOND=A.NOND
    星光总能为我指引方向
    2011年10月24日 6:14

答案

  • /*
    1、MS-SQL SERVER中没有sys.flaydb这个系统表。
    2、你的表别名定义的是A1,A2,前面的B.GOLD,B.TYPET是无效的。
    3、你的后面定义了字段别名EDT,前面SELECT处是A.DTE, where后面又是A2.EDT。没有统一。
    */
    
    --在MS-SQL中改成这样就可以执行了
    CREATE TABLE flaydb(NOND INT,[YEAR] INT,[MONTH] INT,[DAY] INT,GOLD INT,TYPET INT)
    
    SELECT  A.NOND ,
            B.EDT ,
            B.GOLD ,
            B.TYPET
    FROM    ( SELECT    NOND ,
                        MAX([YEAR] * 10000 + [MONTH] * 100 + [DAY]) AS FDT
              FROM      flaydb
              GROUP BY  nond
            ) A ,
            ( SELECT    NOND ,
                        GOLD ,
                        TYPET ,
                        [YEAR] * 10000 + [MONTH] * 100 + [DAY] AS EDT
              FROM      flaydb
            ) AS B
    WHERE   B.EDT = A.FDT
            AND B.NOND = A.NOND
    

    2011年11月2日 1:17
    版主

全部回复

  • What do you want to do?


    想不想时已是想,不如不想都不想。
    2011年10月24日 11:04
    版主
  • 您好,

    请问你想替换什么?请提供我们更多的信息。

    谢谢。


    Please remember to mark the replies as answers if they help and unmark them if they provide no help. This can be beneficial to other community members reading the thread.
    2011年10月27日 15:36
    版主
  • /*
    1、MS-SQL SERVER中没有sys.flaydb这个系统表。
    2、你的表别名定义的是A1,A2,前面的B.GOLD,B.TYPET是无效的。
    3、你的后面定义了字段别名EDT,前面SELECT处是A.DTE, where后面又是A2.EDT。没有统一。
    */
    
    --在MS-SQL中改成这样就可以执行了
    CREATE TABLE flaydb(NOND INT,[YEAR] INT,[MONTH] INT,[DAY] INT,GOLD INT,TYPET INT)
    
    SELECT  A.NOND ,
            B.EDT ,
            B.GOLD ,
            B.TYPET
    FROM    ( SELECT    NOND ,
                        MAX([YEAR] * 10000 + [MONTH] * 100 + [DAY]) AS FDT
              FROM      flaydb
              GROUP BY  nond
            ) A ,
            ( SELECT    NOND ,
                        GOLD ,
                        TYPET ,
                        [YEAR] * 10000 + [MONTH] * 100 + [DAY] AS EDT
              FROM      flaydb
            ) AS B
    WHERE   B.EDT = A.FDT
            AND B.NOND = A.NOND
    

    2011年11月2日 1:17
    版主