C# '在需要条件的上下文中指定的非布尔类型的表达式,当日期介于
我正在创建一个sql查询,我想制作损益表 但我的查询中有一个错误: '在需要条件的上下文中指定的非布尔类型的表达式,靠近','C# '在需要条件的上下文中指定的非布尔类型的表达式,当日期介于,c#,sql,C#,Sql,我正在创建一个sql查询,我想制作损益表 但我的查询中有一个错误: '在需要条件的上下文中指定的非布尔类型的表达式,靠近',' 如何修复此问题?只需识别您的SQL命令,就可以看到其中有错误,请看: SELECT CAST(Pay_invoice_details.Barcode AS INT), SUM(CAST(Pay_invoice_details.Total_items_price AS INT)) AS 'Total Payes', SUM(CAST(Pay_invoic
如何修复此问题?只需识别您的SQL命令,就可以看到其中有错误,请看:
SELECT
CAST(Pay_invoice_details.Barcode AS INT),
SUM(CAST(Pay_invoice_details.Total_items_price AS INT)) AS 'Total Payes',
SUM(CAST(Pay_invoice_details.Quantity AS INT) * CAST(Buy_invoice_details.Purchase_price AS INT)) AS 'Total Purchases',
CAST(Pay_invoice_details.Invoice_date AS DATE),
CAST(Buy_invoice_details.Barcode AS INT),
CAST(Buy_invoice_details.Invoice_date AS DATE),
SUM(CAST(Payouts_details.Total_amount AS INT)) AS 'Total Payouts'
FROM
Pay_invoice_details,
Buy_invoice_details,
Payouts_details
where
Pay_invoice_details.Barcode=Buy_invoice_details.Barcode and
Pay_invoice_details.Invoice_date,
Buy_invoice_details.Invoice_date,
Payouts_details.Invoice_date
between '" + from.Value.ToString("yyyy-MM-dd") + "' and'" + to.Value.ToString("yyyy-MM-dd") + "'
在WHERE子句中,您使用了一个包含3列的列表来比较日期范围(使用BETWEEN)。这不是它的工作原理。如果你的意图是考虑第一列,如果它是NULL,考虑第二列,如果它也是NULL,考虑第三,你应该使用CueSeCe函数。就像这样:
(...)
where
Pay_invoice_details.Barcode=Buy_invoice_details.Barcode and
COALESCE(
Pay_invoice_details.Invoice_date,
Buy_invoice_details.Invoice_date,
Payouts_details.Invoice_date
) between '" + from.Value.ToString("yyyy-MM-dd") + "' and'" + to.Value.ToString("yyyy-MM-dd") + "'
哦,看起来像是请研究如何正确使用查询中的参数在您的查询中确定。这是无效的。为什么不先在SQLServer控制台中完善一下呢。然后插入,网络?
(...)
where
Pay_invoice_details.Barcode=Buy_invoice_details.Barcode and
COALESCE(
Pay_invoice_details.Invoice_date,
Buy_invoice_details.Invoice_date,
Payouts_details.Invoice_date
) between '" + from.Value.ToString("yyyy-MM-dd") + "' and'" + to.Value.ToString("yyyy-MM-dd") + "'