模拟实战数据落地:MSsql通过存储过程获得销售数据视图

话不多说

目标需求:通过传递参数(查询条件及查询时间)调用存储过程获得销售数据视图,并且在视图中有时间字段供后续引用,实现数据对接获取任务

最终结果如图:

实现以上结果步骤如下:

1)建立users表和orders表分别代表用户及订单,其中订单中用户id与用户表中用户id关联,并随机插入一些测试数据,sql脚本如下:

-- 创建 Users 表
CREATE TABLE Users (UserId INT PRIMARY KEY IDENTITY(1,1),Username NVARCHAR(255) NOT NULL
);-- 创建 Orders 表
CREATE TABLE Orders (OrderId INT PRIMARY KEY IDENTITY(1,1),UserId INT NOT NULL,OrderTime DATETIME NOT NULL,Amount DECIMAL(18, 2) NOT NULL,Status NVARCHAR(50),CONSTRAINT FK_Orders_Users FOREIGN KEY (UserId) REFERENCES Users(UserId)
);-- 插入 Users 表的模拟数据
INSERT INTO Users (Username) VALUES ('Alice');
INSERT INTO Users (Username) VALUES ('Bob');
INSERT INTO Users (Username) VALUES ('Charlie');
INSERT INTO Users (Username) VALUES ('David');-- 插入 Orders 表的模拟数据
INSERT INTO Orders (UserId, OrderTime, Amount, Status) VALUES (1, '2024-01-02T12:00:00', 99.99, 'Shipped');
INSERT INTO Orders (UserId, OrderTime, Amount, Status) VALUES (2, '2024-01-02T15:30:00', 199.99, 'Processing');
INSERT INTO Orders (UserId, OrderTime, Amount, Status) VALUES (1, '2024-01-03T09:15:00', 249.99, 'Shipped');
INSERT INTO Orders (UserId, OrderTime, Amount, Status) VALUES (3, '2024-01-04T18:45:00', 39.99, 'Delivered');
INSERT INTO Orders (UserId, OrderTime, Amount, Status) VALUES (4, '2024-01-05T11:00:00', 59.99, 'Shipped');

建表插入数据结果如下:

订单表:

用户表:

2)写存储过程,实现查询数据生成视图,关键是要将查询时间也写入到视图

存储过程代码如下:

USE [agui_conn]
GO
/****** Object:  StoredProcedure [dbo].[sp_GetOrdersByTimestamp]    Script Date: 09/28/2024 13:17:42 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[sp_GetOrdersByTimestamp]@Timestamp NVARCHAR(100),@Condition NVARCHAR(100) -- 假设这是一个额外的条件,如订单状态
AS
BEGINIF OBJECT_ID('dbo.vw_OrdersByTimestamp', 'V') IS NOT NULLBEGINEXEC sp_executesql N'DROP VIEW dbo.vw_OrdersByTimestamp';END-- 创建一个视图来显示所需的订单信息DECLARE @sql NVARCHAR(MAX);SET @sql = N'CREATE VIEW dbo.vw_OrdersByTimestamp ASSELECT u.Username as 用户名, o.OrderTime as 订单时间,o.Amount as 订单金额,'''+ @Timestamp + ''' AS 查询时间FROM Orders oINNER JOIN Users u ON o.UserId = u.UserIdWHERE (o.Status = ''' + @Condition+ ''')'; -- 假设订单表中有一个Status字段o.OrderTime >= ''' + CONVERT(NVARCHAR, @Timestamp, 120) + ''' ANDEXEC sp_executesql @sql;END

3)测试执行存储过程语句

EXEC sp_GetOrdersByTimestamp @Timestamp = '2024-09-28 16:27:10.000', @Condition = 'Shipped';--'Delivered';--

执行结果:

以上存储过程是重点,重点,重点!!!

关键有个小问题未解决,不知怎样能不重建视图,而不断增加查询记录,查了很多资料都说用触发器或临时表,还在探索

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/437425.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

LLM - 使用 vLLM 部署 Qwen2-VL 多模态大模型 (配置 FlashAttention) 教程

欢迎关注我的CSDN:https://spike.blog.csdn.net/ 本文地址:https://spike.blog.csdn.net/article/details/142528967 免责声明:本文来源于个人知识与公开资料,仅用于学术交流,欢迎讨论,不支持转载。 vLLM 用于 大语言模型(LLM) 的推理和服务,具有多项优化技术,包括先进…

VMware ESXi Centos7网卡名称 ens192 变更eth0

1.在 /etc/sysconfig/network-scirpts/ 文件夹下 创建一个ifcfg-eth0的文件, 最简单的方式是 mv ifcfg-ens192 ifcfg-eth0 然后 vi ifcfg-eth0 把DEVICE改成 DEVICEeth0 wq! 保存 2. vi /etc/sysconfig/grub # 在位置添加 net.ifnames0 biosdevname0 参数 完…

java基础 day1

学习视频链接 人机交互的小故事 微软和乔布斯借鉴了施乐实现了如今的图形化界面 图形化界面对于用户来说,操作更加容易上手,但是也存在一些问题。使用图形化界面需要加载许多图片,所以消耗内存;此外运行的速度没有命令行快 Wi…

【iOS】计算器的仿写

计算器 文章目录 计算器前言简单的四则运算UI界面事件的逻辑小结 前言 笔者应组内要求,简单实现了一个可以完成简单四则运算的计算器程序。UI界面则是通过最近学习的Masonry库来实现的,而简单的四则运算内容则是通过栈来实现一个简单的四则运算。 简单…

QSqlDatabase在多线程中的使用

Qt中多线程使用数据库_qt数据库管理类支持多数据库,多线程-CSDN博客 1. 代码&#xff1a; #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include <QPushButton> #include <QSqlDatabase> #include <QSqlQuery> #include <QSqlError>…

【SpringBoot详细教程】-08-MybatisPlus详细教程以及SpringBoot整合Mybatis-plus【持续更新】

目录 🌲 MyBatis Plus 简介 🌾入门案例 🌾 MP 简介 🌲 MP 的CRUD 🌾 新增 🌾 删除 🌾 修改在进行 🌾 根据ID查询 🌾 查询所有 🌲 分页功能 🌾 设置分页参数 🌾 设置分页拦截器 🌲 优化启动 🌾 取消mbatisPlusBanner 🌾 取消Sprin…

L0-Linux-关卡材料提交

SSH全称Secure Shell&#xff0c;中文翻译为安全外壳&#xff0c;它是一种网络安全协议&#xff0c;通过加密和认证机制实现安全的访问和文件传输等业务。SSH 协议通过对网络数据进行加密和验证&#xff0c;在不安全的网络环境中提供了安全的网络服务。 SSH 是&#xff08;C/S…

大学学校用电安全远程监测预警系统

1.概述&#xff1a; 该系统是基于移动互联网、云计算技术&#xff0c;通过物联网传感终端&#xff0c;将办公建筑、学校、医院、工厂、体育场馆、宾馆、福利院等人员密集场所的电气安全数据&#xff0c;实时传输至安全用申管理服务器&#xff0c;为用户提供不间断的数据跟踪&a…

Linux shell编程学习笔记84:tee命令——显示保存两不误

0 引言 在前面的学习笔记中&#xff0c;我们经常使用echo命令和输出重定向来生成脚本文件或演示文件&#xff0c;其实Linux提供了一个可以从标准输入读取数据&#xff0c;并输出成文件的命令——tee。 1 tee命令 的帮助信息、功能、命令格式、选项和参数说明 1.1 tee命令 的…

基于Hive和Hadoop的用电量分析系统

本项目是一个基于大数据技术的用电量分析系统&#xff0c;旨在为用户提供全面的电力消耗信息和深入的用电量分析。系统采用 Hadoop 平台进行大规模数据存储和处理&#xff0c;利用 MapReduce 进行数据分析和处理&#xff0c;通过 Sqoop 实现数据的导入导出&#xff0c;以 Spark…

Windows 11 安装配置 Git 教程

目录 Git Windows 11 环境安装配置 Git Git Git是一个开源的分布式版本控制系统&#xff0c;由Linus Torvalds创建&#xff0c;用于有效、高速地处理从小到大的项目版本管理。Git是目前世界上最流行的版本控制系统&#xff0c;广泛应用于软件开发中。 以下是Git的一些关键特…

【2024最新】华为HCIE认证考试流程

HCIE是华为认证体系中最高级别的ICT技术认证&#xff0c;表示通过认证的人具有ICT领域专业知识和丰富实践经验。 HCIE认证方向&#xff1a;最高认证级别HCIE的技术方向有13个 下面以HCIE-Datacom为例给大家介绍一下&#xff1a; HCIE-Datacom认证考试流程&#xff1a; 1.笔试…

查找与排序-快速排序

排序算法可以分为内部排序和外部排序&#xff0c;内部排序是数据记录在内存中进行排序&#xff0c;而外部排序是因排序的数据很大&#xff0c;一次不能容纳全部的排序记录&#xff0c;在排序过程中需要访问外存。常见的内部排序算法有&#xff1a;插入排序、希尔排序、选择排序…

【Linux系统编程】第二十六弹---彻底掌握文件I/O:C/C++文件接口与Linux系统调用实践

✨个人主页&#xff1a; 熬夜学编程的小林 &#x1f497;系列专栏&#xff1a; 【C语言详解】 【数据结构详解】【C详解】【Linux系统编程】 目录 1、回顾C语言文件接口 1.1、以写的方式打开文件 1.2、以追加的方式打开文件 2、初步理解文件 2.1、C文件接口 3、进一步理…

element-ui 通过按钮式触发日期选择器

element ui 写在前面1. 自定义的日期时间组件CustomDatePicker.vue2. 页面效果总结写在最后 写在前面 需求&#xff1a;elementui中日期时间选择器&#xff0c;目前只能通过点击input输入框触发日期选择器&#xff0c;我希望能通过其他方式触发日期选择器同时把input输入框去掉…

【经典机器学习算法】谱聚类算法及其实现(python)

&#x1f308; 个人主页&#xff1a;十二月的猫-CSDN博客 &#x1f525; 系列专栏&#xff1a; &#x1f3c0;深度学习_十二月的猫的博客-CSDN博客 &#x1f4aa;&#x1f3fb; 十二月的寒冬阻挡不了春天的脚步&#xff0c;十二点的黑夜遮蔽不住黎明的曙光 目录 1. 前言 2. 前…

模版and初识vector

一、引言 在C语言中&#xff0c;不论是数组&#xff0c;还是结构体定义的数组&#xff0c;功能都比较欠缺&#xff0c;不是单纯的添加几个变量就能够解决的。缺少增删查改的功能&#xff0c;为了解决这个问题&#xff0c;C决定填上C语言这个坑&#xff0c;但是填过坑的人都知道…

线性DP之最长上升/下降子序列

分析过程&#xff1a; 代码&#xff1a; #include<bits/stdc.h> #include<unordered_map> #include<unordered_set> using namespace std; #define int long long //可能会超时 #define PII pair<int,int> const int INF 0x3f3f3f3f, mod 99824435…

认知杂谈73《成年人的修炼:勇敢前行,积极向上》

内容摘要&#xff1a; 成长是成年人的必修课&#xff0c;它要求我们不断学习、面对挑战、做出选择、调整行动。成长的必要性在于适应社会、实现自我价值。实现成长的策略包括自我掌舵、自救、为结果负责、保持积极心态。 追求艺术或商业目标、自己解决问题、承担责任、换个角度…

Android 车载虚拟化底层技术-显示虚拟化(双card)总览

系列文章请扫关注公众号&#xff01; 本文主要包括部分&#xff1a; 显示虚拟化场景DRM架构 2.1 DRM简介&#xff08;Direct Rendering Manager&#xff09; 2.2 高通SDM驱动 Multiple-drm-cards方案 3.1 介绍 3.2 Qcom驱动框架解析 3.3 高通及MTK平台支持情况 3.4 方案…