我使用SQL Server管理器2008.
我有一个查询如下:
SELECT dbo.iLines.Part,
dbo.iLines.Pg,
SUM(dbo.iLines.Qty) as sales6months,
dbo.iLines.Prefix
FROM
Autopart.dbo.iLines
RIGHT JOIN
dbo.product
ON
dbo.product.keycode = dbo.ilines.part
where prefix = 'i'
and ([datetime] > dateadd(month, -6, getdate()))
and dbo.ilines.part = 'BK939'
group by
dbo.ilines.pg,
dbo.ilines.part,
dbo.ilines.prefix
order by sales6months desc
Run Code Online (Sandbox Code Playgroud)
因此,为了解释,我希望在产品表中的所有产品上获得最后6个月的销售额.
问题在于某些产品没有任何销售.我仍然需要它们来展示.所以我要问的是显示所有产品的最近6个月的销售额,包括0个销售额.
"iLines"是导致问题的表格,因为如果有销售,零件编号只存在于那里.
我知道可能有一种方法可以进行多个查询等.但我只需要1个查询就可以了.
我试过让null通过,但没有做任何加上它真的可怕使用空值呵呵.
要添加到此查询的任何代码段都非常棒!
非常感谢!
如果您还需要更多信息,请询问!
UPDATE!对不起日期只存在于Ilines.
Ilines =销售表产品=只是我们所有产品的表格
这是主要的问题,它意味着在过去的6个月内推出了最畅销的"n"部件.它工作,除了我说它没有显示没有出售的部分.
ALTER PROCEDURE [dbo].[MyPareto]
@pgParam varchar(255)
AS
SELECT
i.pg,
dbo.OldParetoAnalysis.Pareto,
i.part,
i.sales6months,
a.LostSales6Months,
dbo.NewParetoAnalysis.Pareto
FROM
OPENQUERY(SACBAUTO, 'SELECT dbo.iLines.Part,
dbo.iLines.Pg,
SUM(dbo.iLines.Qty) as sales6months,
dbo.iLines.Prefix
FROM Autopart.dbo.iLines
where prefix …Run Code Online (Sandbox Code Playgroud) 使用.Net Core和visual studio 2015.
我在.net核心中创建了一个Web API,最近在测试中我意识到我的结果正在被缓存(或者至少看起来像是).所以我建立了一个响应缓存并将位置设置为none:
[Route("api/[controller]")]
public class NopProductController : Controller
{
private INopProductService _nopProductService { get; set; }
public NopProductController(INopProductService nopProductService)
{
_nopProductService = nopProductService;
}
[HttpGet]
[ResponseCache(Duration = 60, Location = ResponseCacheLocation.None)]
public IActionResult GetChangedProducts()
{
return Ok(_nopProductService.GetChanged());
}
}
Run Code Online (Sandbox Code Playgroud)
当我检查邮差并检查标题时,我发现:
Cache-Control→no-cache,max-age = 60 Pragma→no-cache
这看起来是正确的我相信.但是,当我在我的Sql Server 2012数据库中编辑相关表上的数据(我更改1单元格值)然后刷新请求时,更改不存在.
如您所见,看起来缓存已关闭.那么为什么不会发生变化,只有当我重置IIS时才会发生变化.
这是Kestrel和IIS的问题吗?有什么错误或我在这里错过的东西?
注意:WebAPI是在本地发布的,用于测试+在Windows 10上通过IIS托管.
我正在使用C#,winforms.
遇到了一个小问题.我尽可能地调试,这让我相信我正在使用的代码导致问题.好的,我有一个充满查询数据的组合框.
有2列"名称"和"键码".我只使用以下方式显示名称:
accCollection.DisplayMember = "name";
Run Code Online (Sandbox Code Playgroud)
然后我使用以下内容来获取与名称对应的keycode值.
string acct = accCollection.SelectedValue.ToString();
Run Code Online (Sandbox Code Playgroud)
我遇到的问题是键码与名称不匹配.我虽然这可能是我的查询,所以我做的是在填充comboBox之前在数据网格视图中显示查询结果.数据网格视图显示正确的结果,这使我相信我使用了错误的代码!
希望这是一个愚蠢的一线问题,如果你们想要更多的代码让我知道,我将编辑这篇文章.
更新继承了我忘记提及的代码,因为你可以看到我已经分配了数据成员
accCollection.DataSource = myTable;
accCollection.DisplayMember = "name";
accCollection.ValueMember = "keycode";
Run Code Online (Sandbox Code Playgroud)
更新::::还有更多信息.所选值应为1557,即名称帐号.但我得到1855,这是一个不同的帐号.就像我说数据表是正确的....这就是为什么我sooooooo困惑!
更新::下载一些代码,以便您可以看到我如何使用信息更新组合框!
SqlCommand accountFill = new SqlCommand("SELECT name, keycode FROM dbo.Customer", conn1);
SqlDataAdapter readacc = new SqlDataAdapter(accountFill);
DataTable dt = new DataTable();
readacc.Fill(dt);
dataGridView3.DataSource = dt;
conn1.Close();
accCollection.DataSource = dt;
accCollection.DisplayMember = "name";
accCollection.ValueMember = "keycode";
Run Code Online (Sandbox Code Playgroud)
然后我将以下内容传递给我调用其他查询的任务.
private void button1_Click_1(object sender, EventArgs e)
{
checkBox1.Checked = true;
string acct = accCollection.SelectedValue.ToString();
Task t = new Task(() => …Run Code Online (Sandbox Code Playgroud) 使用C#ASP.net 4.5,Nopcommerce CMS,MVC 4和visual studio 2012.
嘿伙计们,这似乎是人们熟悉的问题,我,我搜索过"谷歌",还没有找到符合我需要的解决方案.
请注意,这不是我的代码,我被要求解决这个问题(我对文件I/O的知识有限,只是基础知识).
错误堆栈跟踪是:
" at System.Net.ConnectStream.set_Position(Int64 value)\r\n at Hroc.Plugin.Core.CsvProductManagement.Services.CsvReader.Initialise(Stream stream, Encoding encoding)\r\n at Hroc.Plugin.Core.CsvProductManagement.Services.CsvReader..ctor(Stream stream)\r\n at Hroc.Plugin.Core.CsvProductManagement.Services.ImportService.ImportStoreProductsFromCsv(Stream stream, Int32 storeContext, Int32 vendorId, Boolean deleteUnmatched)\r\n at Hroc.Plugin.Core.CsvProductManagement.Services.StaticImportFile.GetStoreProductImportMessages(Stream stream, Int32 storeContext, Int32 vendorId, Boolean deleteUnmatched)\r\n at Hroc.Plugin.Core.CsvProductManagement.Tasks.ImportFilesTask.Execute()\r\n at Nop.Services.Tasks.Task.Execute(Boolean throwException) in c:\\Users\\stevesmith\\Documents\\GitHub\\Store\\Libraries\\Nop.Services\\Tasks\\Task.cs:line 83"
Run Code Online (Sandbox Code Playgroud)
现在为了代码,我试图尽量缩短它(它是MVC虽然准备了101种不同的方法......
public void Execute() {
if (_importTaskSettings.Enabled) {
var response = HttpWebRequest.Create(_importTaskSettings.ImportFileUrl).GetResponse();
if (response != null)
{
using (var stream = response.GetResponseStream())
{
var messages = StaticImportFile.GetStoreProductImportMessages(stream, 0, 1, true); //error occurs here …Run Code Online (Sandbox Code Playgroud) 使用SQL Server 2008,WinForms C#.NET 4.5,Visual Studio 2012.
我有一个查询当前使用来自a的一些信息更新表GridView.
下面是调用存储过程的代码:
public void UpdateMain(string part, int? pareto)
{
try
{
using (SqlConnection AutoConn = new SqlConnection(conn32))
{
AutoConn.Open();
using (SqlCommand InfoCommand = new SqlCommand())
{
using (SqlDataAdapter infoAdapter = new SqlDataAdapter(InfoCommand))
{
InfoCommand.Connection = AutoConn;
InfoCommand.CommandType = CommandType.StoredProcedure;
InfoCommand.CommandText = "dbo.updateMain";
InfoCommand.Parameters.AddWithValue("@part", part);
InfoCommand.Parameters.AddWithValue("@pareto", pareto);
InfoCommand.CommandTimeout = 180;
InfoCommand.ExecuteNonQuery();
}
}
}
}
catch (Exception e)
{
//MessageBox.Show("Error in connection :: " + e);
}
}
Run Code Online (Sandbox Code Playgroud)
这是SQL:
ALTER PROCEDURE [dbo].[updateMain] …Run Code Online (Sandbox Code Playgroud) January好吧,我一直在思考动态列的想法,我的意思是一个名为......的列表December。
用户在运行时将选择月份范围,例如Feb至July。
我通常会做的是从后面的代码中获取所有列,然后对我需要的列和不需要的列进行排序。
但我想知道如何在 SQL 中完成这一切。
我知道 SQL 不支持数组(悲伤的表情),但还有其他选择。
所以我的问题是,有没有一种方法可以设置 SQL 查询,根据作为一系列列名称的参数动态选择多个列?
我查看了一些动态查询,但它们只执行 1 列。
我正在考虑将后面的代码提供的一串列作为 SQL 中的 1 个参数传递,然后以某种方式迭代以选择每一列。
你们有什么感想?不能完成吗?可以做但是很乱?
编辑:我想我会提供一些代码,正如您所看到的,我应用了数据透视查询并获取了一系列列(月)。到目前为止所建议的是先正常化,然后转向。
SELECT
[1] January ,
[2] February,
[3] March,
[4] April,
[5] May,
[6] June,
[7] July,
[8] August,
[9] September,
[10] October,
[11] November,
[12] December
FROM
(
SELECT MONTH(Convert(datetime,[lasttaken],120)) as months, complete
FROM #Temp WITH(NOLOCK)
) d
pivot
(
count(complete)
for …Run Code Online (Sandbox Code Playgroud) 使用Unity3d 4.1.2,C#mono.
转到以下脚本:
using UnityEngine;
using System.Collections;
public class PlayerMove : MonoBehaviour
{
public float MoveSpeed = 30.0f;
public float maxVel = 0.000000001f;
// Use this for initialization
void Start ()
{
//Physics.gravity = Vector3(0,-50,0);
}
void FixedUpdate()
{
maxVel = 20f;
MoveSpeed = 50.0f;
if(Input.GetKey(KeyCode.D))
{
rigidbody.AddForce(Vector3.right * MoveSpeed);
Debug.Log("BEFORE = " + rigidbody.velocity.magnitude);
}
if(Input.GetKey(KeyCode.A))
{
rigidbody.AddForce(Vector3.left * MoveSpeed);
}
rigidbody.velocity = Vector3.ClampMagnitude(rigidbody.velocity, maxVel);
Debug.Log("AFTER = " + rigidbody.velocity.magnitude);
}
// Update is called once per frame
void …Run Code Online (Sandbox Code Playgroud) 我有一个很棒的查询,用一个脚本列表填充我的虚拟表,这些脚本为所有外键创建非聚集索引.
但是这个列表很棒,但我想进一步采取动态查询来执行每个脚本.
我没有那么多的动态查询exp,因为大多数时候我只是在我的c#软件中复制功能.
所以我有..
DECLARE @SQLquery as NVARCHAR(MAX)
SET @SQLquery = (SELECT * FROM #ForiegnKeyScriptsNumero)
EXECUTE @SQLquery
DROP TABLE #ForiegnKeyScriptsNumero
Run Code Online (Sandbox Code Playgroud)
现在这不会起作用,因为我会返回多行.
我需要做的是简单地获取每一行并一个接一个地执行.
对于我的生活,我的大脑已经融化了,我只是看不到它.
我知道这是一个简单的修复,我错过了什么?
更新::
只是为了添加我的脚本在我的表的每一行中生成的内容,表只有1列.
IF NOT EXISTS
(SELECT * FROM sys.indexes WHERE object_id = OBJECT_ID(N'[dbo].[ActivityLog]')
AND name = N'IX_ActivityLogTypeId') CREATE NONCLUSTERED INDEX [IX_ActivityLogTypeId] ON [dbo].[ActivityLog]( [ActivityLogTypeId] ASC )
WITH (PAD_INDEX = OFF,
STATISTICS_NORECOMPUTE = OFF,
SORT_IN_TEMPDB = OFF,
IGNORE_DUP_KEY = OFF,
DROP_EXISTING = OFF,
ONLINE = OFF,
ALLOW_ROW_LOCKS = ON,
ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
Run Code Online (Sandbox Code Playgroud)
这段代码就在我的行中.
作为一种享受,我想我会发布生成脚本的脚本.
CREATE …Run Code Online (Sandbox Code Playgroud) 我有以下内容:
var nodes = _nodeService.GetNodeChildren(id, nId);
var association = _nodeService.GetNodeOrder(id, nId);
var joinedNodes = nodes.Join(association,
n => n.Id,
a => a,
(n, a) => new {nodes = n, association = a};
var enumerable = joinedNodes.ToList();
var orderedNodes = enumerable.OrderBy(x => x.association);
return orderedNodes.nodes;
Run Code Online (Sandbox Code Playgroud)
其中,节点是对象列表,关联是 GUID 列表。
问题是我没有按预期收到订单。
我需要根据 GUIDS 位置的顺序返回节点列表。
以下是部分测试代码
_ngOrder = new List<Guid>
{
_nodeId2,
_nodeId1,
_nodeId4,
_nodeId3,
}
_nodeClient.SetNodeOrder(_ngOrder);
Run Code Online (Sandbox Code Playgroud)
当我得到方法并断言这里是代码:
Assert.That(_response[0].Id, Is.EqualTo(_node2Id);
Assert.That(_response[1].Id, Is.EqualTo(_node1Id);
Assert.That(_response[2].Id, Is.EqualTo(_node4Id);
Assert.That(_response[3].Id, Is.EqualTo(_node3Id);
Run Code Online (Sandbox Code Playgroud)