我有两个表-销售(ID,Staff_Name,Sale_Date,Amount),费用(ID,Expense_Name,Expense_Date,Amount)
问题是要在给定日期的两列中显示销售和支出金额之和。
以下代码适用于Oracle SQL:
select sum(distinct sales.amount),sum(distinct expense.amount) from sales,expense where sales.sale_date='06-dec-1996' and expense.expense_date='06-dec-1996';
我参与的一个项目中,大部分查询都是通过在FROM子句中包含多个表来执行的。我知道这是合法的,但我一直使用显式连接。
例如,两个表(使用SQL Server DDL)
CREATE TABLE Manufacturers(
ManufacturerID INT IDENTITY(1,1) PRIMARY KEY NOT NULL,
Name varchar(100))
CREATE TABLE Cars (
ModelID INT IDENTITY(1,1) PRIMARY KEY NOT NULL,
ManufacturerID INT CONSTRAINT
我目前有两个版本的SQL查询,我正在尝试了解哪一个在性能和成本等方面可能更好。
这是wrt这个问题:
select department_salary.pay_month, department_id,
case
when department_avg>company_avg then 'higher'
when department_avg<company_avg then 'lower'
else 'same'
end as comparison
from
(
select department_id,
我正在使用一个Oracle10g数据库,我想从一个表中提取一组记录,然后使用它从一组相关的表中提取记录。
如果这是T-SQL,我会这样做:
CREATE TABLE #PatientIDs (
pId int
)
INSERT INTO #PatientIDs
select distinct pId from appointments
SELECT * from Person WHERE Person.pId IN (select pId from #PatientIDs)
SELECT * from Allergies WHERE Allergies.pId IN (selec
我正在使用oracle 10g,我有一个问题要问你。
可以将子查询“插入”到LIKE()操作符中吗?
例如:SELECT* FROM users u WHERE u.user_name LIKE ( subquery here );
我在->之前尝试过的
SELECT * FROM dictionary WHERE TABLE_NAME
LIKE (Select d.TABLE_NAME from dictionary d
where d.COMMENTS LIKE '%table%'
)
WHERE ROWNUM < 100;
它告诉我,我的
我正在使用ORACLE数据库,我试图从SQL查询中访问一个随机行,但是查询没有返回一个随机行,我不知道我做错了什么?
我的问题是:
SELECT a.car_id, b.product_id
FROM listing a, carProduct b
WHERE a.car_id = b.car_id
AND a.certified = 'TRUE'
AND b.product_id like '%CERT'
AND rownum = 1
ORDER BY DBMS_RANDOM.RANDOM
假设我们有一个EMPLOYEE表,我们希望在以下字段上使用三个过滤器来查询它(在这些字段上我们有索引):subsidiary_id、employee_id、last_name。
如果在where子句(如:WHERE last_name = :name )中使用带有简单过滤器和参数绑定的动态SQL来构造查询,则使用索引,并且响应速度快。
现在的问题是,如果我们在查询中使用智能逻辑来使用静态SQL构造查询,那么:
SELECT subsidiary_id, employee_id, last_name
FROM EMPLOYEE
WHERE (:sub_id IS NULL OR subsidi
我只是在编写一个复杂的更新查询,该查询大致如下所示:
update table join
(select y, min(x) as MinX
from table
group by y) as t1
using (y)
set x = x - MinX
这意味着变量x是基于子查询更新的,该查询还处理变量x --但是不能通过运行的update命令修改吗?这不是个问题吗?我的意思是,在正常编程中,您通常必须显式地处理这个问题,即将新值从旧值存储到其他地方,在工作完成后,用新的.但是,SQL数据库将如何做到这一点?
我对任何一个观察或实验都不感兴趣。我想要一个来
我必须从3个不同的查询(下面的Q1、Q2和Q3 )中获取ID值,并将它们附加到一个plsql表中,以便稍后使用table()使用它。但是我不能“追加”到表中。你能告诉我怎么做吗?我在Oracle 12G中。我不想像在我的生产场景中那样联合所有的查询,我需要从15个不同的查询中提取,并且不想编写一个巨大的查询。每次,我“放”到这个plsql表中,前面的数据都会被擦除,并且看不到要追加的内容。你知道如何使用plsql table来实现这一点吗? CREATE OR replace PACKAGE pkg AS
TYPE customer_id_table_type IS TABLE OF a
我正在尝试优化一个显示变量性能(小于2到超过15s)的SQL查询。
概述
这是一个ColdFusion网站,带有Server 2008 R2后端
该查询是网站搜索引擎的一部分,因此使用了相当多的。
这是查询的简化视图(一些联接和遗漏的位置)
with AllEligibleEntries AS (
SELECT DISTINCT b.*,
c.*,
DENSE_RANK() OVER (ORDER BY b.CreationDate DESC) AS RowNum
From Ticket b
LEFT JOIN Customer c
当使用JDBC的PreparedStatements查询Oracle时,请考虑以下几点:
String qry1 = "SELECT col1 FROM table1 WHERE rownum=? AND col2=?";
String qry2 = "SELECT col1 FROM table1 WHERE rownum=1 AND col2=?";
String qry3 = "SELECT col1 FROM table1 WHERE rownum=1 AND col2=" + someVariable ;
逻辑指示-- rownum
我们在SAP Netweaver中部署了一个Java Web应用程序,它通过普通JDBC访问Oracle 10g数据库。直到几天前,当一个查询导致以下错误时,该应用程序才正常工作:
ORA-01843: not a valid month
给我们带来麻烦的查询是这样的:
SELECT *
FROM (SELECT *
FROM (SELECT inspeccion.sociedad_id,
inspeccion_id,
estado_id,
我使用下面的sql从内部网导入文件中的一些数据。然而,每隔一段时间,就会出现超时错误,而proc将失败,这就是我使用事务的原因。如果事务失败,我希望ImportedTable被清除。然而,这种情况似乎没有发生。这里有我遗漏的东西吗?
ALTER PROCEDURE [dbo].[pr_ImportData]
@StoreCode varchar(10),
@UserId varchar(100)
AS
BEGIN TRANSACTION
-- 1) Clear the data
exec pr_INTRANET_ClearData @StoreCode, @UserId
IF @@
我有一些SQL,它调用一个存储过程,并从不同的用户返回许多行。每一行都有一个金额,我希望将每个用户这些金额的总和放到另一个select查询中。
所以查询得到的金额;
Declare @tempUserPurchases table(
Email nvarchar(50), Amount money
)
-- get all the data into the temp table.
insert into @tempUserPurchases
exec stpGetUserPurchases @CompanyId = 312546
因此,上面的每个成员都会生成几条记录,每条记
我有一个LINQ查询,它将根据票证是否满足几个条件来选择它。查询本身运行良好,工作正常,但我担心,随着可能返回数量的增加,它将明显地变得更糟。
有人能建议改进或优化这个查询以运行更快/更好的方法吗?我是不是做了什么违背标准实践的可怕错误?
这是查询。我换了一些名字。我认为select在select new语句中也是一个问题。
var attentionObj = (from c in context.SupportTicketEntities
where
c.StatusID != 3 &&
我获取csv文件,读取这些文件并将它们写入Cassandra。我对大量数据(每天大约1000万行)执行此操作,文件本身非常小(从100到1000行)。
我要做的是在将它们写入数据库之前检查我要插入的主键是否已经存在。
我知道我可以用Select count(*) from table where primary key1 = something and key2 is something else做到。
但这很慢,我想在一次检查整个文件,如果它将影响已在Cassandra中的数据,我希望(需要)它是快的。有没有办法实现我想要的东西?(或者类似的东西,比如检查每个批次是否会影响行)
我有一个类似这样的查询:
SELECT 'FY2000' AS FY, COUNT(DISTINCT SGBSTDN_PIDM) AS CHEM_MAJORS
FROM SATURN.SGBSTDN, SATURN.SFRSTCR
WHERE SGBSTDN_PIDM = SFRSTCR_PIDM
AND SGBSTDN_TERM_CODE_EFF = (SELECT MAX(SGBSTDN_TERM_CODE_EFF)
FROM SATURN.SGBSTDN
下面的查询运行良好,直到我将其转到Oracle SQL为止。
SELECT
X.*
FROM
(
SELECT
BusID,
BusName,
CurrentSpeed,
PassengersNo,
SpeedLimit,
dataDateTime,
ROW_NUMBER() OVER (
PARTITION BY CAST(dataDateTime AS DATE
我使用的是Oracle10,但问这个问题的最好方法是举个例子。
select *
from t1, t2
where t1.id = t2.id
and t1.otherID = (select max(otherID)
from t2
where id = THE ID FROM THE OUTER QUERY T1
)
我想你知道我想说什么了吧。我需要在子查询中引用t1,以便将其连接到t2的最大值。
我需要知道如何创建这样的查询。
“来自外部查
我有两个表Person_Organization和Person_Organization_other,嵌套查询是:
SELECT
Person_Organization_id
FROM
Person_Organization_other
WHERE
company_name IN (SELECT company_name
FROM Person_Organization_other
WHERE Person_Organization_id IN (SELECT Person_Or
从这个页面- https://dev.mysql.com/doc/refman/5.7/en/rewriting-subqueries.html -它声明了以下查询:
SELECT * FROM t1 WHERE id IN (SELECT id FROM t2);
可以转换为内部连接,如下所示:
SELECT DISTINCT t1.* FROM t1, t2 WHERE t1.id=t2.id;
然而,从这里-- https://stackoverflow.com/questions/33653228/convert-sql-query-with-where-in-select-disti
我的应用程序广泛使用分层数据选择(分类法选择),类似(但不是确切地):
Country
=> State
=> City
=> Street
因此,用户选择第一级选项,JS AJAX负载第二级,用户选择AJAX负载第三级,等等。
我认为加速应用程序的一种方法是将整个层次结构作为JS文件加载,并利用If-Modified-Since/*Last-Modified*和304响应代码直接使用来自JavaScript的数据来缓存这么大的数据(50 KiB,gzip之后的12 )和耗时(从DB获取数据300 ms )。
我不会用飞机来实现那种害怕发明轮子的技术。
希望这个问题
将提供一个答案,但是这个场景似乎与任何一个答案都不一样。
我在做这张桌子
CREATE TABLE Patients
(PatientID NUMBER(5) PRIMARY KEY,
FirstName CHAR(20) NOT NULL,
LastName CHAR(20) NOT NULL,
ZipCode NUMBER(5) NOT NULL,
City CHAR(20) NOT NULL ,
State CHAR(20) NOT NULL,
DOB DATE NOT NULL,
EmailAddress CHAR(30) NOT NULL,
PhoneN
我想使用spring数据rest来更新某些用户的行,但是在运行时,这个查询有奇怪的“交叉连接”添加到查询中。
弹簧数据rest法
@Modifying
@Transactional
@Query("Update Notification n SET n.noticed = true Where n.notificationPost.owner.userId = 1 ")
public void postNoticed();
运行时创建的查询
Hibernate: update notification cross join set noticed=true where ow
下面是我的问题。在一个Oracle (11.2.3.0)中,这给我带来了错误,但在另一个Oracle DB中,下面的查询工作正常。无法理解这种不同的行为。
来自一个DB的输出
SQL> select id from cag where greeting_id=1111100001 for update;
ERROR at line 1:
ORA-01722: invalid number
来自其他DB的输出
SQL> select id from cag where greeting_id=1111100001 for update;
ID - 9111100001
是否存
我有一个由可空参数组成的查询。如果输入参数为空,则应选择所有值。
以前,它使用Oracle18c。但现在它不能与oracle 19c一起工作。
如果表中的数据为空,则不起作用
知道为什么或者是怎么回事吗?
SELECT NAME, SURNAME FROM MY_TABLE WHERE NAME = NVL(?,NAME);
我试过这个,结果是一样的
SELECT NAME, SURNAME FROM MY_TABLE WHERE NAME = NAME;