Ste*_*hRT 1 sql t-sql sql-server sql-server-2014
我试图选择下面有3个唯一GUID的3行:
SELECT
number AS 'ID #',
line AS 'Line #',
network AS Network,
FORMAT(SUM(totalCost), N'c', 'en-US') AS Total
FROM
theLine
WHERE
theGuid = '32e1319d-8842-4b98-9a66-c1e694417528'
AND
theGuid = '61e819a8-a37a-4105-aab0-e34df31d992d'
AND
theGuid = '6675811d-9a32-4b62-a003-87344af03d6b'
GROUP BY
number, line, network
Run Code Online (Sandbox Code Playgroud)
但是,当我运行此查询时,我没有得到任何记录.如果我只做一个WHERE子句,那么我得到与该GUID相关的记录,但不再呈现任何结果.
但我需要做的是以下内容:
------------------------------------
|ID # |Line # |Network |Total |
------------------------------------
|1 |1 |USASV |$5,000.00 |
|2 |1 |FJESC |$4,920.00 |
|3 |1 |RTDEW |$598.00 |
Run Code Online (Sandbox Code Playgroud)
那么,我做错了什么?
您不能在同一行中拥有3个不同的值.更改您AND的OR或使用IN运营商.
SELECT
number AS 'ID #',
line AS 'Line #',
network AS Network,
FORMAT(SUM(totalCost), N'c', 'en-US') AS Total
FROM
theLine
WHERE
theGuid = '32e1319d-8842-4b98-9a66-c1e694417528'
OR
theGuid = '61e819a8-a37a-4105-aab0-e34df31d992d'
OR
theGuid = '6675811d-9a32-4b62-a003-87344af03d6b'
GROUP BY
number, line, network
Run Code Online (Sandbox Code Playgroud)
要么:
SELECT
number AS 'ID #',
line AS 'Line #',
network AS Network,
FORMAT(SUM(totalCost), N'c', 'en-US') AS Total
FROM
theLine
WHERE
theGuid IN (
'32e1319d-8842-4b98-9a66-c1e694417528',
'61e819a8-a37a-4105-aab0-e34df31d992d',
'6675811d-9a32-4b62-a003-87344af03d6b'
)
GROUP BY
number, line, network
Run Code Online (Sandbox Code Playgroud)