我想详细了解SQL教我的那一刻,我目前试图进行一些简单的销售使用报告SUM,COUNT,AVG和GROUP BY一个SQL Server 2008数据库中的功能.我已经设法按行获得每组的总数,计数和平均值.
如何按行获取所有组的总计?
SQL到目前为止:
SELECT
SUM(dbo.tbl_orderitems.mon_orditems_pprice) AS prodTotal,
AVG(dbo.tbl_orderitems.mon_orditems_pprice) AS avgPrice,
count(dbo.tbl_orderitems.uid_orditems_prodid) AS prodQty,
dbo.tbl_orderitems.txt_orditems_pname
FROM
dbo.tbl_orderitems
INNER JOIN
dbo.tbl_orders
ON (dbo.tbl_orderitems.uid_orditems_orderid = dbo.tbl_orders.uid_orders)
WHERE
dbo.tbl_orders.uid_order_webid =
<cfqueryparam cfsqltype="cf_sql_integer" value="#session.webid#">
AND dbo.tbl_orders.txt_order_status =
<cfqueryparam cfsqltype="cf_sql_varchar" value="#arguments.sale_status#">
GROUP BY
dbo.tbl_orderitems.txt_orditems_pname
Run Code Online (Sandbox Code Playgroud)
Product Qty Gross Avg Westbury Climbing Frame 17 8,023.00 471.94 Sandpoint Deluxe Climbing Frame 34 36,146.00 1,063.12 Roseberry Climbing Frame 9 7,441.00 826.78 Ridgeview Texas Climbing Frame 10 6,990.00 699 Selwood …
我有一个购物车阵列,它有一个变量告诉我产品是否是附件,这将是是或否.我需要遍历购物车并找出以下内容:
我一直在尝试这个:
<cfloop index="i" from="1" to="#arrayLen(session.mycart)#">
<cfif session.mycart[i].accs EQ "yes">
<cfset accPresent = "yes">
</cfif>
<cfif session.mycart[i].accs EQ "no">
<cfset prodpresent = "yes">
</cfif>
</cfloop>
<cfif accPresent EQ "yes" and prodPresent EQ "no">
<cfset bothPresent EQ "yes">
</cfif>
Run Code Online (Sandbox Code Playgroud)
由于没有找到accPresent,这种情况就会失败,我认为这是因为循环经历一个循环,并且一旦找到非附属产品,accs就不等于是.实现我想要做的事情的最佳方法是什么?
在测试期间,我没有注意到在某些订单上输入数据库的日期/时间不正确.而不是输入日期和时间我只输入了日期.我正在使用正确的时间戳,createodbcdatetime(now())但我用cfsqltype="cf_sql_date"它将其输入数据库.
我很幸运能够正确记录订单日期/时间,这意味着我可以使用订单日期/时间字段中的时间.
我的问题是我可以过滤表中所有行,只输入日期.我的数据如下;
表名:tbl_orders
uid_orders dte_order_stamp
2000 02/07/2012 03:02:52
2001 03/07/2012 01:24:21
2002 03/07/2012 08:34:00
Run Code Online (Sandbox Code Playgroud)
表名:tbl_payments
uid_payment dte_pay_paydate uid_pay_orderid
1234 02/07/2012 03:02:52 2000
1235 03/07/2012 2001
1236 03/07/2012 2002
Run Code Online (Sandbox Code Playgroud)
我需要能够选择所有付款而没有从tbl_payments输入任何时间,然后我可以循环结果从我的订单表中抓取时间将其添加到我的付款表中的日期并使用新的日期/时间更新字段.
我几乎可以处理重新插入日期/时间.它只是选择我不确定的时间行?
任何帮助,将不胜感激.
以下是订单和付款的select语句以及是否需要加入.(只是fyi)
SQL Server 2008,Cold Fusion 9
SELECT
dbo.tbl_orders.uid_orders,
dbo.tbl_orders.dte_order_stamp,
dbo.tbl_payment.dte_pay_paydate,
dbo.tbl_payment.uid_pay_orderid
FROM
dbo.tbl_orders
INNER JOIN dbo.tbl_payment ON (dbo.tbl_orders.uid_orders = dbo.tbl_payment.uid_pay_orderid)
SELECT
dbo.tbl_orders.uid_orders,
dbo.tbl_orders.dte_order_stamp
FROM dbo.tbl_orders
SELECT
uid_paymentid,
uid_pay_orderid,
dte_pay_paydate,
FROM
dbo.tbl_payment
Run Code Online (Sandbox Code Playgroud) 我有一个SQL数据库,ntext其中包含一个保存页面内容的字段.
我正在使用ColdFusion查询信息并将其传递给表单.
该表格利用ckeditor用于该特定字段,该字段目前包含大约4000个字符.在ckeditor窗口中查看时,似乎缺少一些文本.
但是,当我查看数据库数据时,文本根本没有被截断; 它完好无损.
我认为这可能是ckeditor的字符限制,所以我将其关闭并通过textarea框查看数据,但文本仍然缺失.
查询是一个组件中保存的简单选择查询,没什么特别之处:
<cfquery name="getDrilledContent" datasource="#application.dsn#">
SELECT co.uid_content, co.txt_contentgroup, co.txt_contentRefID, co.uid_contentuser, co.txt_contentvalue, co.dte_contentdate, co.txt_contentpagename,
co.txt_metatitle, co.txt_metadescrip, co.txt_metakeywords, co.txt_metaurl, co.bit_primary, co.txt_h1, co.txt_contenturl, co.txt_contentlink,
us.txt_du_firstname, us.txt_du_surname, txt_du_email, dte_edited, uid_changedby
FROM tbl_content co
INNER JOIN tbl_datausers us ON co.uid_contentuser=us.uid_datauser
WHERE uid_contentwebid = <cfqueryparam cfsqltype="cf_sql_integer" value="#session.webid#">
<cfif Isdefined('arguments.uid_content') AND arguments.uid_content NEQ "">
AND co.uid_content=<cfqueryparam cfsqltype="cf_sql_integer" value="#arguments.uid_content#"></cfif>
</cfquery>
Run Code Online (Sandbox Code Playgroud)
为什么这个查询不会将所有数据都拉下来?
我正在整理一个购物车,我将购物车数据保存在一个数组中,数组内部是一个包含各个产品信息的结构.我需要得到结构中的totalprice列的总和,请看下面我的转储,我试过了
<cfset carTotal = ArraySum(session.mycart[ "totalPrice" ])>但这会产生错误,"价值总价不能转换为数字"?这是因为我在结构中使用arrayum吗?
任何帮助将不胜感激,谢谢.
