-2
SELECT COUNT(ORVM.APPID) AS 'Number of VMs', ORAP.ORDERID
FROM Order.[VirtualMachine] ORVM,
Order.[Application] ORAP,
Order.[ServiceOrder] SO
WHERE SO.ORDERID=ORAP.ORDERID AND
ORAP.APPID=ORVM.APPID
GROUP BY ORAP.ORDERID
SELECT COUNT(ORVM.APPID) AS 'Number of VMs', ORAP.ORDERID
FROM Order.[ServiceOrder] SO,
Order.[Application] ORAP
LEFT JOIN Order.[VirtualMachine] ORVM
ON ORAP.APPID=ORVM.APPID
WHERE SO.ORDERID=ORAP.ORDERID
GROUP BY ORAP.ORDERID
表名:ORAPSQL LEFT JOIN表會導致一些錯誤
APPID ORDERID APPNAME
2 6 A
3 7 B
4 8 C
5 9 D
6 10 E
9 11 F
表名:ORVM
VMID APPID VMNAME
4 2 AA-1
5 2 AA-2
6 2 AA-3
33 5 BB-1
34 6 CC-1
35 6 CC-2
36 6 CC-3
37 6 CC-4
38 10 DD-1
39 10 DD-2
40 10 DD-3
41 9 EE-1
表名:SO
ORDERID ORDERNUM STATUS
6 OR000001 NORMAL
7 OR000002 NORMAL
8 OR000003 NORMAL
9 OR000004 NORMAL
10 OR000005 NORMAL
11 OR000006 NORMAL
我想搜索每個APP有多少VM,SQL 1輸出正確,SQL 2輸出錯誤。我想找出原因並使SQL 2正確。
我很確定你的數據庫比「SQL-00:一些錯誤」更具表現力。 – nvoigt
'訂單'是一個保留字。你需要逃避它。在標準SQL中,您需要編寫'「Order」',但是您的SQL方言似乎使用了非標準的方括號。嘗試'[Order]'看看它是否擺脫了錯誤 –
@a_horse_with_no_name,當涉及分隔的標識符時,至少新的MS SQL Server版本也不接受ANSI SQL的'''? – jarlh