簡體   English   中英

從另一個表創建表-MYSQL到MSSQL的轉換

[英]Create Table from Another Table - MYSQL to MSSQL conversion

我正在將數據庫從MYSQL轉換為MSSQL / TSQL,但無法在MSSQL中使用以下MYSQL查詢。 尋找新鮮的眼睛看我所缺少的。

工作的MYSQL查詢:

CREATE TABLE tempTable 
AS (SELECT * FROM Note WHERE createdate IN (SELECT MAX(createdate) 
FROM Note GROUP BY `taskPK`));

查詢將查找給定ID的注釋行的最大日期。 可能會有多個具有相同ID的Note行,它將找到最新的行並將其插入到新表中。

非工作MSSQL示例1 :( “(')附近的語法不正確

CREATE TABLE tempTable 
AS(SELECT * FROM dbo.Note WHERE createdate IN (SELECT MAX(createdate) 
FROM dbo.Note GROUP BY taskPK));

非工作MSSQL示例2 :(關鍵字INTO附近的語法不正確)

SELECT * 
FROM Note 
WHERE createdate IN (SELECT MAX(createdate) FROM Note GROUP BY taskPK) 
INTO tempTable FROM Note;

此新表(一旦創建)將在以下查詢中使用(我尚未在MSSQL中對其進行測試):

SELECT Task.id, Task.taskdescription, Task.status, TaskSchedule.date, TaskGroups.name, tempTable.createDate FROM Task 
LEFT JOIN TaskSchedule ON Task.id = TaskSchedule.taskPK
LEFT JOIN TaskGroups ON Task.taskgroupid = TaskGroups.id
LEFT JOIN tempTable ON Task.id = tempTable.taskPK
WHERE Task.userPK = '$userPK' AND Task.status = 'Open'
ORDER BY tempTable.createDate DESC;

上面的查詢從一個我遇到問題的上一個查詢中選擇了一個包含最新筆記的任務,以防萬一,使我變得更加困難。

您不能在mssql中使用Create table asSelect table into

采用:

SELECT * INTO tempTable FROM Note N
WHERE N.createdate IN (SELECT MAX(N1.createdate) FROM Note N1 GROUP BY N1.taskPK)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM