我试图在我的数据库上运行一些更新脚本,我收到以下错误:
ALTER TABLE语句与FOREIGN KEY约束"FK_UPSELL_DT_AMRNO_AFMKTG_REF"冲突.冲突发生在数据库"ECOMVER",表"dbo.AFFILIATE_MKTG_REF",列'AMRNO'中.
我正在运行以下脚本:
ALTER TABLE [dbo].[UPSELL_DATA] WITH CHECK ADD
CONSTRAINT [FK_UPSELL_DT_AMRNO_AFMKTG_REF] FOREIGN KEY
(
[AMRNO]
) REFERENCES [dbo].[AFFILIATE_MKTG_REF] (
[AMRNO]
)
GO
Run Code Online (Sandbox Code Playgroud)
AMRNO是表AFFILIATE_MKTG_REF中的PK.
此外,我尝试使用SQL Management Studio中的修改表选项创建外键关系,我得到了同样的错误.我不确定我应该找什么?
任何建议将不胜感激.
我试图通过下表名为emp来显示管理其他员工的每个员工的员工编号与他或她管理的人数.
empno ename job mgr hiredate sal comm deptno
----- ------ ---------- ---------- ---------- ------- ------- ------
7369 Smith Clerk 7902 1980-12-17 800 20
7499 Allen Salesman 7698 1981-02-20 1600 300 30
7521 Ward Salesman 7698 1981-02-22 1250 500 30
7566 Jones Manager 7839 1981-04-02 2975 20
7654 Martin Salesman 7698 1981-09-28 1250 1400 30
7698 Blake Manager 7839 1981-05-01 2850 30
7782 Clark Manager 7839 1981-06-09 2450 10
7788 Scott Analyst 7566 1982-12-09 3000 20 …Run Code Online (Sandbox Code Playgroud) SELECT student_id, section, count( * ) as total
FROM raw_data r
WHERE response = 1
GROUP BY student_id, section
Run Code Online (Sandbox Code Playgroud)
测试共有4个部分,每个部分都有不同的问题.我想知道,对于每个学生和每个部分,他们正确回答了多少问题(响应= 1).
但是,使用此查询,如果学生在给定部分中没有得到任何问题,那么我的结果集中将完全丢失该行.我怎样才能确保每个学生总共返回4行,即使一行的"总数"为0?
这是我的结果集的样子:
student_id section total
1 DAP--29 3
1 MEA--16 2
1 NNR--13 1 --> missing the 4th section for student #1
2 DAP--29 1
2 MEA--16 4
2 NNR--13 2 --> missing the 4th section for student #2
3 DAP--29 2
3 MEA--16 3
3 NNR--13 3 --> missing the 4th section for student #3
4 DAP--29 5 …Run Code Online (Sandbox Code Playgroud) 我们有一个包含17Mil行的表,其中包含产品属性,让我们说它们是:
brandID,sizeID,colorID,price,shapeID
我们需要按品牌和大小查询聚合.目前我们通过执行以下操作来查询和过滤此数据:
select brandID, sizeID, count(*)
from table where colorID in (1,2,3) and price=10 and shapeID=17
--"additional complex where clause here"
group by brandID, sizeID
order by brandID, sizeID
Run Code Online (Sandbox Code Playgroud)
我们报告这些数据.问题是,尽管返回的实际数据只有几百行,但运行此查询需要10秒左右(这是一个非常简单的示例).
我认为我们已经达到了索引此表的能力,因此我认为任何数量的索引都不会让我们接近即时结果.
我对OLAP或其他分析服务知之甚少,但SQL Server可以预先过滤或预先聚合此表,以便可以执行上述查询(或类似的返回等效数据)?或者在一个非常大的表上处理任意where子句的最佳方法是什么?
我有一个包含学生编号和相应教师编号的简单表格,我需要对其进行非规范化以输入遗留系统.
例如,以下是数据现在的样子:
StudNumber TeacherNumber
445 57315
445 88584
445 95842
858 88115
858 65443
858 57315
858 21144
858 18657
858 88584
311 64521
665 35512
665 57315
665 15546
我希望它看起来像这样,将每个教师分成一个单独的列,从左到右填充列.一个商业规则是每个学生的教师不超过六名:
StudNum Teacher1 Teacher2 Teacher3 Teacher4 Teacher5 Teacher6
445 57315 88584 95842
858 88115 65443 57315 21144 18657 88584
311 64521
665 35512 57315 15546
原始表中有10,000多行,因此我需要以编程方式执行此操作.谢谢!
我要找的是分组并计算同一个表中不同数据的总数,并将它们显示在两个不同的列中.如下.
表A中的数据
领域:
Name Type
Bob 1
John 2
Bob 1
Steve 1
John 1
Bob 2
Run Code Online (Sandbox Code Playgroud)
查询所需的结果:
Name Type 1 Type 2
Bob 2 1
John 1 1
Steve 1 0
Run Code Online (Sandbox Code Playgroud) 我有一张表A,附近有15000个条目.我有第二个表B,有7900个条目,带有表A的公共字段.
我需要从表A中提取到第三个临时表C中的所有条目,除了那些也出现在表B中的条目.虽然听起来很简单,但我还没有找到方法.我得到的最接近的是:
INSERT INTO tableC
SELECT *
FROM tableA
INNER JOIN tableB
ON tableA.field IS NOT tableB.field
Run Code Online (Sandbox Code Playgroud)
这个SQL只选择tableA中的所有内容,甚至是tableB中的条目.
我出错的任何想法?
我在Oracle视图上执行sql查询时遇到了一个奇怪的行为.该视图包含多个连接.当我键入常规sql时:
select * from vView - I receive the error that view is not found
select * from "vView" - The query is executed.
Run Code Online (Sandbox Code Playgroud)
我想知道为什么?
下面是我的sql:
CREATE OR REPLACE FORCE VIEW "TMSCODE"."vCountEventsData" ("EV_ID_NUMBER", "SI_ID", "EV_YEAR", "EV_INS_DATE", "EV_REM_DATE", "EV_AADT_TOT", "EV_AADT_DIR1", "EV_AADT_DIR2", "EV_REPORT", "DIRECTION", "CNAME", "STATION_DESC") AS
SELECT
"TMSCODE"."STC_EVENTS".EV_ID_NUMBER,
"TMSCODE"."STC_EVENTS".SI_ID,
"TMSCODE"."STC_EVENTS".EV_YEAR,
"TMSCODE"."STC_EVENTS".EV_INS_DATE,
"TMSCODE"."STC_EVENTS".EV_REM_DATE,
"TMSCODE"."STC_EVENTS".EV_AADT_TOT,
"TMSCODE"."STC_EVENTS".EV_AADT_DIR1,
"TMSCODE"."STC_EVENTS".EV_AADT_DIR2,
"TMSCODE"."STC_EVENTS".EV_REPORT,
"TMSCODE"."D_DIRECTION".DIRECTION,
"TMSCODE"."D_CONSULTANT".CNAME,
"TMSCODE"."D_STATION_TYPE".STATION_DESC
FROM
"TMSCODE"."STC_EVENTS"
INNER JOIN "TMSCODE"."D_DIRECTION" ON ("TMSCODE"."STC_EVENTS".EV_DIR = "TMSCODE"."D_DIRECTION".ID)
INNER JOIN "TMSCODE"."D_CONSULTANT" ON ("TMSCODE"."STC_EVENTS".EV_CONS = "TMSCODE"."D_CONSULTANT".ID)
INNER JOIN "TMSCODE"."D_STATION_TYPE" ON ("TMSCODE"."STC_EVENTS".EV_STATION_TYPE = …Run Code Online (Sandbox Code Playgroud) sql ×8
sql-server ×2
t-sql ×2
group-by ×1
inner-join ×1
mysql ×1
olap ×1
ora-00942 ×1
oracle ×1
subtraction ×1
view ×1