我在这里有一个问题,我希望有一个简单的解决scheme。 我会尽可能简单地做到这一点: 一张票属于一个参加者 例: select * from tickets JOIN attendees ON attendee.id = tickets.attendee_id 与会者有一个称为“收入”的小数列 也就是说,我需要运行一个查询,返回有关门票的各种信息,包括总收入。 问题是,如果2张门票属于同一个参与者,那么它会将收入计入两次。 我如何才能将与会者的收入总计一次? 我不想使用子查询,因为我的ORM使这很难。 另外一个子查询解决scheme不能缩放,如果我想这样做多个列。 这是我有: 1位参与者,收入为100美元 两张门票都属于该参与者 Select count(tickets.*) as tickets_count , sum(attendees.revenue) as atendees_revenue from tickets LEFT OUTER JOIN attendees ON attendees.id = tickets.attendee_id; =>这告诉我, attendees_revenue是200.我希望它是100.因为在数据库中有一个参与者与existing_revenue为100.我不希望与会者被重复计数。 请让我知道这是否可能。
(除使用UDF外)对DB2 9.7的任何REGEXP-In-SQL支持?
我们希望在多个SQL Server数据库中进行更新,将某个表中的所有NULL值更改为空string而不是NULL。 我们可能会在数百个数据库上做这件事。 表名将始终相同,但根据前端应用程序的configuration,列名是可变的(不要判断…我没有创build这个系统)。 是否有办法在不知道列名的情况下对所有这些列进行更新?
我在ColdFusion编码,但试图留在cfscript,所以我有一个函数,允许我通过查询运行它与<cfquery blah > #query# </cfquery> 不知何故,当我用sql = "SELECT * FROM a WHERE b='#c#'"构build查询并将其传入时,ColdFusion用2个单引号replace了单引号。 所以它在最后的查询中变成WHERE b=''c'' 。 我已经尝试了很多不同的方式来创buildstring,但我不能让它只留下一个报价。 即使做一个stringreplace也没有效果。 任何想法为什么发生这种情况? 在这个项目期间,破坏我在cfscript中生活的希望
我有这个Java程序: MySQLConnectExample.java import java.sql.*; import java.util.Properties; public class MySQLConnectExample { public static void main(String[] args) { Connection conn1 = null; Connection conn2 = null; Connection conn3 = null; try { String url1 = "jdbc:mysql://localhost:3306/aavikme"; String user = "root"; String password = "aa"; conn1 = DriverManager.getConnection(url1, user, password); if (conn1 != null) System.out.println("Connected to the database […]
我想知道是否有可能在一个事务中运行多个DDL语句。 我对SQL Server特别感兴趣,即使与其他数据库(Oracle,至lessPostgreSQL)的答案也可能是有趣的。 我已经做了一些“创build表”和“创build视图”的交易内创build的表,似乎有一些不一致,我想知道如果不应该在交易内完成DDL … 我大概可以将DDL移到事务之外,但是我想为此得到一些参考。 我发现了这么多: MSDN页面数据库引擎中的隔离级别清楚地表明,在快照隔离下正在运行的显式事务中,可以执行哪些DDL操作是有限制的 – 但是我没有使用快照隔离,这应该导致错误。 这可以被解释,以便DDL操作可以在不同隔离级别下的显式事务中执行。 用于SQL Server的Oracle®数据库网关用户指南#DDL语句声明 在给定的事务中只能执行一个DDL语句 – 对于直接使用的SQL Server是否也有效? 对于Oracle: 在SO问题中unit testingDDL语句需要在一个事务中 ,据说Oracle对DDL语句做了隐式提交? (即使没有参考) 如果有关系,我通过JTDS JDBC驱动程序来处理Java。 Touko
我有Table1像这样的列: +–+——+ |ID|Name | +–+——+ |1 |MSSQL | +–+——+ |2 |MySQl | +–+——+ |3 |Oracle| +–+——+ 在表Table2 ,我有一个列 +————+ |Databasename| +————+ |1,3 | +————+ |2 | +————+ |1,2 | +————+ 我的输出应该是: +————+ |Databasename| +————+ |MSSQL,Oracle| +————+ |MySQL | +————+ |MSSQL,MYSQL | +————+ 我如何得到这个,我需要查询这个..
很长一段时间,当我在本地机器上处理涉及基于数据库的图像的Web应用程序项目时,我已经注意到一些烦人的事情。 当地我的意思是这是一个典型的环境与VS 2008和SQL Server 2005在我的工作站上。 每当我使用HttpHandler在本地显示图像时,只有一些图像在每个页面上呈现。 但是,当我将应用程序推送到托pipe环境时,问题通常会消失。 但是,我只是推出了一个新的项目到一个托pipe环境,并遇到了与我本地相同的问题 – 这一次,站点和数据库在托pipe环境中的同一台服务器上。 有没有人在这里发生了什么? 这是处理程序: [WebService(Namespace = "http://tempuri.org/")] [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)] public class FeaturedHandler : IHttpHandler { Business biz = new Business(); public void ProcessRequest(HttpContext context) { if (context.Request.QueryString["ListingID"] != null) { int listingID = Convert.ToInt32(context.Request.QueryString["ListingID"]); DataSet ds = biz.GetFeaturedImageByID(listingID); DataRow row = ds.Tables[0].Rows[0]; byte[] featureImage = (byte[])row["Photo"]; […]
我有一些庞大的查询运行在巨大的桌子上。 这些查询似乎是CPU瓶颈,并运行几个小时。 据我所知,Oracle有11g的许多新function,第2版可以在内部使查询执行同步。 然而,无论我在查询中join什么样的提示,我都不能在数据库框中使用多于一个的CPU。 我有一个非常值得尊敬的有8个CPU的Solaris机器,但是每次运行这个查询时,我最终都会把一个CPU推到100%,然后在那里坐几个小时。 我试过的提示是: SELECT /*+ PARALLEL */ … SELECT /*+ PARALLEL(5) */ … SELECT /*+ PARALLEL(10) */ … 在看盒子上的整体CPU消耗时,似乎没有任何工作。 它似乎总是挂100%的一个CPU。 不幸的是,即使解释计划似乎永远运行。 我会尝试用不同的提示获得不同的解释计划,看看是否有帮助。 有些查询可能是不可并行的,即使它们的运行时间在几小时之内? 这个查询中的主表有3.35亿行。 SQL查询文本: http://pastie.org/8634380 系统参数: http://pastie.org/8634383 编辑 : 详细解释计划 – 无并行: http://pastebin.com/HkZgbPpf 优化器相关的系统参数: http://pastie.org/8639841 进一步编辑:我们已经与Oracle联系了解为什么EXPLAIN PLAN需要2个多小时。 我们正在试图运行各种解释计划。
所以我有4个菜单select(产品,位置,courseType和类别),所有这些都可以为空(使用JSF编程,但这应该是无关紧要的这个问题,因为它是一个SQL问题)。 菜单select将向托pipebean发送用户select的variables,并使用准备好的语句使用用户select的菜单中的信息(如果有的话)search数据库表。 如果用户离开菜单项为空,它应该search一切。 如果用户离开菜单项的1个,2个或3个信息,另一个为空,则应该相应地进行search。 我的问题是如何做到这一点,而无需附加到每个适当的SQL语句的bean的一堆if / then语句? 还是有一个更好的SQL语句,我可以做到这一切吗? 我正在使用Java中的准备语句。 我试过这个: if (product != null && location != null && courseType != null && category != null) { pstmt = conn.prepareStatement("select * FROM Courses WHERE " + "product = ? " + "and location = ? " + "and courseType = ? " + "and category […]