2016-10-04 37 views

回答

0

你可以改變只返回最低NEWPRICE每個SKU

CREATE PROCEDURE Usp_conditioncheck @mydate VARCHAR(50) 
AS 
    SELECT * INTO mytable 
    FROM (SELECT *, 
        NEWPRICE =(spw - ((spw * 15)/100)), 
        rn = Row_number()OVER (partition BY sku ORDER BY (spw - ((spw * 15)/100)) ASC) 
      FROM table1 CMS 
        INNER JOIN table2 CRT 
          ON id = id) A 
    WHERE rn = 1 

現在只需Select表,將每個SKU

SELECT * FROM mytable 
+0

任何人都可以請幫助我。 –

1

這有最低NEWPRICE的程序查詢在您的存儲過程中:

SELECT * 
FROM table1 CMS INNER JOIN 
    table2 CRT 
    ON ID = ID CROSS APPLY 
--------^ 
    (SELECT NEWS = (SPW - ((SPW * 15)/100))) AS C 

如果此查詢運行,則它正在執行cross join。爲什麼?如果兩個表中都有id列,那麼你會得到一個錯誤(有關模糊列引用的東西)。

我會建議你總是使用完全限定的列名 - 也就是說,使用列別名的表的別名。

+0

我編輯了我的問題,查詢表現非常糟糕。請分享您的建議。 –