Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ionic-framework/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从SQL更改为SQL-CE-语法_Sql_Sql Server Ce - Fatal编程技术网

从SQL更改为SQL-CE-语法

从SQL更改为SQL-CE-语法,sql,sql-server-ce,Sql,Sql Server Ce,我已经就以下代码提出了一个问题: 我在数据库查询(SQLServer)中使用了以下sql语法 我现在改为SQLServerCE(精简版)。 我可以发现,sql Server Compact不支持sql支持的某些命令。(像玛姬·因托) 如何更改代码,使其在SQLServerCompact上工作 谢谢你的帮助! BK 编辑: 该表:表\u球员\u目标\u评分->包含以下数据: ID......Team...........Name......HeaderGoal......FreeKickGoal

我已经就以下代码提出了一个问题:

我在数据库查询(SQLServer)中使用了以下sql语法

我现在改为SQLServerCE(精简版)。 我可以发现,sql Server Compact不支持sql支持的某些命令。(像玛姬·因托)

如何更改代码,使其在SQLServerCompact上工作

谢谢你的帮助! BK

编辑:

该表:表\u球员\u目标\u评分->包含以下数据:

 ID......Team...........Name......HeaderGoal......FreeKickGoal
 104     Barcelona      Mike      2               1
 105     Barcelona      Peter     0               0
 106     Real Madrid    Michael   0               2
 107     Real Madrid    Terry     0               2
 108     Chelsea        James     0               0
 109     Chelsea        Arthur    1               2
 110     Chelsea        Spence    1               2
现在我想在下表(表_团队_目标_评分)中插入如下数据:

 FC.............Goals
 Barcelona      3
 Real Madrid    4
 Chelsea        6

您可以使用
更新
插入

BEGIN TRANSACTION;

UPDATE A
SET goals = B.goals
FROM dbo.table_with_team_and_goals A
INNER JOIN (SELECT team, SUM(headergoal + freekickgoal) AS goals 
            FROM table_with_goals 
            GROUP BY team) B
    ON A.team = B.team

INSERT INTO dbo.table_with_team_and_goals(team, goals) 
SELECT team, goals
FROM (  SELECT team, SUM(headergoal + freekickgoal) AS goals 
        FROM table_with_goals 
        GROUP BY team) A
WHERE NOT EXISTS(SELECT 1 FROM dbo.table_with_team_and_goals
                 WHERE team = A.team)

COMMIT TRANSACTION;

您可以使用
更新
插入

BEGIN TRANSACTION;

UPDATE A
SET goals = B.goals
FROM dbo.table_with_team_and_goals A
INNER JOIN (SELECT team, SUM(headergoal + freekickgoal) AS goals 
            FROM table_with_goals 
            GROUP BY team) B
    ON A.team = B.team

INSERT INTO dbo.table_with_team_and_goals(team, goals) 
SELECT team, goals
FROM (  SELECT team, SUM(headergoal + freekickgoal) AS goals 
        FROM table_with_goals 
        GROUP BY team) A
WHERE NOT EXISTS(SELECT 1 FROM dbo.table_with_team_and_goals
                 WHERE team = A.team)

COMMIT TRANSACTION;


非常感谢你的回答。我能请你解释一下代码的作用吗?非常感谢。A和B从哪里来?
A
B
是我选择使用的表别名,可能是任何东西。这只是为了简单,谢谢你的评论,拉马克。但也许我没有问清楚我的问题。我想试试下面的->看看我的问题,我已经编辑过了。谢谢..@Bk_u除了您更改了表名之外,这个查询似乎是在做什么。非常感谢您的回答。我能请你解释一下代码的作用吗?非常感谢。A和B从哪里来?
A
B
是我选择使用的表别名,可能是任何东西。这只是为了简单,谢谢你的评论,拉马克。但也许我没有问清楚我的问题。我想试试下面的->看看我的问题,我已经编辑过了。谢谢…@ BKJ.这看起来像这个查询所做的,除了你改变了表名(好,而且,你应该考虑SQL Express /LoalDB而不是CE)。所以表<代码> TabLeTeaveGoalLeals现在是空的,你想知道如何用这些汇总来填充它吗?@ AaronBertrand:谢谢你的评论。是的,表格“table\u team\u goal\u ratings”是空的,我想知道如何用这些总数填充它。问题是,我想写一个程序,它有一个本地数据库。这就是为什么我选择CE。我尽量不指出LocalDB是一个本地DB。而且,CE几乎已经死了(没有进一步的开发),与Express和LocalDB相比,它有一系列明显的限制。你应该查找它,这样你就知道你要删除什么了。(也,你应该考虑SQL Express /LoalDB而不是CE)。所以表<代码> Table StudioGoalLeals现在是空的,你想知道如何用这些汇总来填充它吗?@ AaronBertrand:谢谢你的评论。是的,表格“table\u team\u goal\u ratings”是空的,我想知道如何用这些总数填充它。问题是,我想写一个程序,它有一个本地数据库。这就是为什么我选择CE。我尽量不指出LocalDB是一个本地DB。而且,CE几乎已经死了(没有进一步的开发),与Express和LocalDB相比,它有一系列明显的限制。你应该查一下,这样你就知道你在忽略什么了。