需要T-SQL查询找到所有可能的方法

Vignesh
create table #sample (
    product varchar(100),
    Price float
) 

insert into #sample values ('Pen',10)
insert into #sample values ('DVD',29)
insert into #sample values ('Pendrive',45)
insert into #sample values ('Mouse',12.5)
insert into #sample values ('TV',49)

select * from #sample 

考虑这种情况...

我有1000美元,我想购买上面列出的东西。

我想花全部钱

因此,我需要一个查询,该查询将给出所有产品中多少单位的价格为1000 $

有什么帮助吗?

恩厄尔伯爵

这是硬编码的,几乎没有灵活性。我的系统花了2分钟才能运行。但是可能会有所帮助,如果没有,抱歉。fnGenerate_Numbers是一个表函数,它返回参数范围内的整数。做到这一点的方法。

DECLARE @Max INT,
        @Pens money,
        @Dvds money,
        @Pendrives money,
        @Mouses money,
        @Tvs money

SELECT @Max = 1000,
       @Pens = 10,
       @Dvds = 29,
       @Pendrives = 45,
       @Mouses = 12.5,
       @Tvs = 49    


;WITH Results AS
(
    SELECT p.n pens, d.n dvds, pd.n pendrives, m.n mouses, t.n tvs, tot.cost
    FROM fnGenerate_Numbers(0, @Max/@Pens) p -- Pens
        CROSS JOIN fnGenerate_Numbers(0, @Max/@Dvds) d -- DVDs
        CROSS JOIN fnGenerate_Numbers(0, @Max/@Pendrives) pd -- Pendrives
        CROSS JOIN fnGenerate_Numbers(0, @Max/@Mouses) m -- Mouses
        CROSS JOIN fnGenerate_Numbers(0, @Max/@Tvs) t -- Tvs
        CROSS APPLY (SELECT p.n * @Pens + d.n * @Dvds + pd.n * + @Pendrives + m.n * @Mouses + t.n * @Tvs cost) tot
    WHERE tot.cost < @Max
), MaxResults AS
(
    SELECT 
        MAX(pens) pens,
        dvds,
        pendrives,
        mouses,
        tvs
    FROM Results
    GROUP BY
        dvds,
        pendrives,
        mouses,
        tvs
)
SELECT mr.*, r.cost FROM MaxResults mr
    INNER JOIN Results r ON mr.pens = r.pens 
        AND mr.dvds = r.dvds
        AND mr.pendrives = r.pendrives
        AND mr.mouses = r.mouses
        AND mr.tvs = r.tvs
ORDER BY cost

本文收集自互联网,转载请注明来源。

如有侵权,请联系debugcn@gmail.com 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类常见问题

T-SQL ::使用GROUP BY CUBE生成所有可能的组合

来自分类Dev

T-SQL需要帮助来完成查询

来自分类Dev

Scala:需要类类型,但找到了T

来自分类Dev

我需要一些帮助来编写sql查询,我想查找所有讲师的教学课程

来自分类Dev

为什么在有IEnumerator <T>时需要IEnumerable <T>?

来自分类Dev

PostgreSQL在递归查询中找到所有可能的组合(排列)

来自分类Dev

找到所有可能的对

来自分类Dev

SQL查询返回不需要的值选择计数名称姓氏返回所有记录

来自分类Dev

所有可能的结果,需要循环

来自分类Dev

SQL查询结果需要返回WHERE子句中的所有记录,甚至重复

来自分类Dev

需要SQL帮助-查询包含前一天添加的所有用户

来自分类Dev

如何在代码中找到需要许可的所有部分

来自分类Dev

找到条件= T时,我需要R开始过滤行

来自分类Dev

MYSQL按子查询分组,但需要所有数据

来自分类Dev

SQL查询需要修订

来自分类Dev

T-SQL ::使用GROUP BY CUBE生成所有可能的组合

来自分类Dev

我需要查询以查找错误条目的所有组合

来自分类Dev

(T)SQL查询以筛选包含的所有数据集。

来自分类Dev

Scala:需要类类型,但找到了T

来自分类Dev

需要SQL查询以列出用户当前和可能的购买

来自分类Dev

需要查询SQL Server

来自分类Dev

在T-SQL中需要两级参考

来自分类Dev

t-sql根据前5个查询选择所有值

来自分类Dev

需要SQL查询帮助

来自分类Dev

需要SQL逻辑可能需要子查询

来自分类Dev

简单查询:SortedSet <T>是否有找到中位数元素的简便方法?

来自分类Dev

SQL 查询:需要帮助

来自分类Dev

错误:找到“T”,需要:“? 扩展液体'

来自分类Dev

类型不匹配; 找到`Message`,需要`T`

Related 相关文章

热门标签

归档