我需要从销售员的2列订单表中获取现金和支票金额的总和。
我的桌子是这样的:
Salesman A Cash 21151
Salesman B Cash 34510
Salesman C Cash 21252
Salesman D Cash 13356
Salesman A Cheque 13944
Salesman B Cheque 87368
Salesman C Cheque 20182
Salesman D Cheque 23862
Run Code Online (Sandbox Code Playgroud)
SQL:
SELECT Ca.Cash, Cr.Credit FROM
(SELECT Salesman, PayMode, SUM(Collection) AS Cash
FROM Prospect_Detail WHERE(Purpose = 'Collections') AND (PayMode = 'Cash')
GROUP BY Salesman, PayMode) AS Ca
CROSS JOIN
(SELECT Salesman, PayMode, SUM(Collection) AS Credit
FROM Prospect_Detail WHERE(Purpose = 'Collections') AND (PayMode = 'cheque')
GROUP BY Salesman, …Run Code Online (Sandbox Code Playgroud) 据我了解,在下面的查询中,如果第一个值NULLIF是空字符串,则应保留现有列的值。在我的实际查询中,这些是变量,但我在查询中放置了实际值以使其更短。
ISNULL(NULLIF(N'', N''), Pwd) => ISNULL(NULL, Pwd) => Pwd
相反,发生的情况是第一个字符被设置为值。运行下面的查询并留意 Pwd 的值。
DECLARE @tblHello TABLE (
UserID INT NOT NULL IDENTITY(1,1),
FirstName VARCHAR(50),
LastName VARCHAR(50),
CompanyName VARCHAR(80),
Pwd VARCHAR(100) NOT NULL,
Email VARCHAR(100) NOT NULL,
CreatedDate DATE NOT NULL DEFAULT SYSUTCDATETIME(),
LastUpdated DATE NOT NULL DEFAULT SYSUTCDATETIME(),
isActive BIT NOT NULL DEFAULT(1)
)
INSERT INTO @tblHello (FirstName, LastName, CompanyName, Pwd, Email)
VALUES ('First', 'Last', 'Testing this', 'This is the password', 'test@email.com')
UPDATE @tblHello
SET
Email = ISNULL(NULLIF(N'testuser58@email.com', ''), …Run Code Online (Sandbox Code Playgroud) 首先,我知道这个问题很模糊,所以如果你能更好地描述它,请随时编辑它。有一些套表像TEST_201812,TEST_201901等等。我有另一个存储这些值的表:
TEST_DATE:
ID DATE
1 201810
2 201811
3 201812
4 201901
Run Code Online (Sandbox Code Playgroud)
现在我想要的是TEST_201812使用TEST_DATE. 我知道这是错误的,但像这样:
select * from TEST_(select DATE from TEST_DATE where ID = 1)
Run Code Online (Sandbox Code Playgroud)
有谁知道如何实现这一目标?
我想在Oracle中创建一个过程; 但是,我在互联网上看到的任何样本都有一个"IS"语法,我无法找到它的任何功能.
CREATE [OR REPLACE] PROCEDURE procedure_name
[ (parameter [,parameter]) ]
IS
[declaration_section]
BEGIN
executable_section
[EXCEPTION
exception_section]
END [procedure_name];
Run Code Online (Sandbox Code Playgroud)
有谁知道"IS"做了什么?
select COMMUNITY_AREA_NAME, count(COMMUNITY_AREA_NAME) as Number_Of_Schools
from CHICAGO_PUBLIC_SCHOOLS group by COMMUNITY_AREA_NAME order by 2 desc
Run Code Online (Sandbox Code Playgroud)
我编写了上面的sql查询来获取结果集,该结果集解释了拥有最多学校的社区名称,结果就是这样但是如何才能显示前10个列?我使用'限制10'.但它显示出一些错误.
select Top 10 COMMUNITY_AREA_NAME, count(COMMUNITY_AREA_NAME) as Number_Of_Schools
from CHICAGO_PUBLIC_SCHOOLS group by COMMUNITY_AREA_NAME order by 2 desc
Limit 10;
Run Code Online (Sandbox Code Playgroud)
错误:
Msg 102, Level 15, State 1, Line 3
Incorrect syntax near 'Limit'.
Run Code Online (Sandbox Code Playgroud)