AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / dba / 问题 / 286864
Accepted
Alaa
Alaa
Asked: 2021-03-12 09:24:59 +0800 CST2021-03-12 09:24:59 +0800 CST 2021-03-12 09:24:59 +0800 CST

sql查询通过除以同一张表中的金额来获取汇率

  • 772

给定一张表销售,商品以两种不同的货币出售,如何以欧元兑换

销售表:

物品 货币 数量
一个 美元 1000
一个 欧元 833.33
乙 日元 50
乙 欧元 200
C 欧元 10
C 加元 2

所需表:

物品 货币 交换 外汇
一个 美元 1.2 欧元
乙 日元 0.25 欧元
C 加元 0.2 欧元

对于每件商品,我们将货币与欧元不同的金额除以欧元货币的金额

知道如何解决这个问题吗?

如果可以处理同一物品我没有欧元货币(例如美元和捷克克朗)的情况会很好,并且在前几行中我计算了美元的兑换,所以我可以计算出捷克克朗兑欧元吗?

oracle plsql
  • 2 2 个回答
  • 3289 Views

2 个回答

  • Voted
  1. Best Answer
    Akina
    2021-03-12T12:06:23+08:002021-03-12T12:06:23+08:00
    SELECT item, t1.currency, t1.amount / t2.amount exchange, t2.currency exch_currency
    FROM sales t1
    JOIN sales t2 USING (item)
    WHERE t1.currency != 'EUR'
      AND t2.currency = 'EUR';
    

    PS。(item, currency)必须是唯一的。currency = 'EUR'每个都必须存在item(如果不存在,则输出中将不存在)。


    有没有办法处理两种不同货币的 CAS:(CAD 和 USD),在此之前我们已经将 USD 转换为 EUR ===> 我们可以将 CAD 转换为 EUR(使用 pl/sql!)吗?- 阿拉

    您可以根据 WHERE 中的条件处理来自任何一方的任何数量的货币。如果两个列表中都存在某种货币,则通过附加条件排除自我兑换。

    例如,

    SELECT item, t1.currency, t1.amount / t2.amount exchange, t2.currency exch_currency
    FROM sales t1
    JOIN sales t2 USING (item)
    WHERE t1.currency IN ('USD', 'EUR', 'JPY') 
      AND t2.currency IN ('EUR', 'GBP', 'CAD') 
      AND t1.currency != t2.currency;
    
    • 0
  2. EdStevens
    2021-03-12T12:25:59+08:002021-03-12T12:25:59+08:00

    @Alaa - 您给定的表格仅包含一件商品的售价(在某个未知时间)、该特定销售的货币以及当时该货币的销售金额。您似乎依赖于尝试将一种货币的一次性销售与另一种货币的同一商品的一次性(不同时间)销售进行比较。这不是解决这个问题的方法。您将需要单独的货币汇率表以及该汇率的生效日期。并且您将需要您的销售表包含销售日期,该日期可以与交换表的“生效日期”进行比较。

    假设所有交易所都针对欧元

    SQL> create table exchange_rate (exch_currency varchar2(3) primary key,
      2                              exch_rate number(4,2),
      3                              exch_eff_dte date);
    
    Table created.
    
    SQL>
    SQL> create table sales (item_id varchar2(10),
      2                      sale_date date,
      3                      sale_currency varchar2(3),
      4                      sale_amt number(8,2),
      5              constraint fk_curr_exch foreign key (sale_currency)
      6                references exchange_rate (exch_currency)
      7  );
    
    Table created.
    
    • 0

相关问题

  • Oracle 中的数据库备份 - 导出数据库还是使用其他工具?

  • ORDER BY 使用文本列的自定义优先级

  • 舒服的sqlplus界面?[关闭]

  • 如何在数据库中找到最新的 SQL 语句?

  • 如何使用正则表达式查询名称?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    连接到 PostgreSQL 服务器:致命:主机没有 pg_hba.conf 条目

    • 12 个回答
  • Marko Smith

    如何让sqlplus的输出出现在一行中?

    • 3 个回答
  • Marko Smith

    选择具有最大日期或最晚日期的日期

    • 3 个回答
  • Marko Smith

    如何列出 PostgreSQL 中的所有模式?

    • 4 个回答
  • Marko Smith

    列出指定表的所有列

    • 5 个回答
  • Marko Smith

    如何在不修改我自己的 tnsnames.ora 的情况下使用 sqlplus 连接到位于另一台主机上的 Oracle 数据库

    • 4 个回答
  • Marko Smith

    你如何mysqldump特定的表?

    • 4 个回答
  • Marko Smith

    使用 psql 列出数据库权限

    • 10 个回答
  • Marko Smith

    如何从 PostgreSQL 中的选择查询中将值插入表中?

    • 4 个回答
  • Marko Smith

    如何使用 psql 列出所有数据库和表?

    • 7 个回答
  • Martin Hope
    Jin 连接到 PostgreSQL 服务器:致命:主机没有 pg_hba.conf 条目 2014-12-02 02:54:58 +0800 CST
  • Martin Hope
    Stéphane 如何列出 PostgreSQL 中的所有模式? 2013-04-16 11:19:16 +0800 CST
  • Martin Hope
    Mike Walsh 为什么事务日志不断增长或空间不足? 2012-12-05 18:11:22 +0800 CST
  • Martin Hope
    Stephane Rolland 列出指定表的所有列 2012-08-14 04:44:44 +0800 CST
  • Martin Hope
    haxney MySQL 能否合理地对数十亿行执行查询? 2012-07-03 11:36:13 +0800 CST
  • Martin Hope
    qazwsx 如何监控大型 .sql 文件的导入进度? 2012-05-03 08:54:41 +0800 CST
  • Martin Hope
    markdorison 你如何mysqldump特定的表? 2011-12-17 12:39:37 +0800 CST
  • Martin Hope
    Jonas 如何使用 psql 对 SQL 查询进行计时? 2011-06-04 02:22:54 +0800 CST
  • Martin Hope
    Jonas 如何从 PostgreSQL 中的选择查询中将值插入表中? 2011-05-28 00:33:05 +0800 CST
  • Martin Hope
    Jonas 如何使用 psql 列出所有数据库和表? 2011-02-18 00:45:49 +0800 CST

热门标签

sql-server mysql postgresql sql-server-2014 sql-server-2016 oracle sql-server-2008 database-design query-performance sql-server-2017

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve