【问题标题】:Create a number for each different field of a table为表的每个不同字段创建一个数字
【发布时间】:2013-07-17 16:31:12
【问题描述】:

假设我有一张汽车表。 我有品牌专栏,还有专栏型号。 标记可以重复。 我所做的是一个查询,它在一列中显示标记,在模型中的另一列中,在另一列中为每个汽车品牌生成一个数字,该数字必须向上移动。 在下面的示例中显示我的查询结果应该如何。

Brand           Model                   Brand Number           

--------------- ----------------------- --------------------- 

Ford            Ranger                  1   

Ford            F100                    1         

Ford            Explorer                1

Chevrolet       Silverado               2           

Chevrolet       LUV                     2       

Mitsubishi      L200                    3        

Toyota          Hilux                   4   

谁能告诉我如何为查询中的每个标记生成该数字?

【问题讨论】:

  • 你必须在那个 for 循环中拥有绝对的一切。可以吗???
  • 对不起,我不明白
  • 您需要将所有内容写入 for 循环,并且需要使用 php 完成
  • 将其添加为您的标签之一,否则人们不会知道,例如我对 c# 不了解

标签: c# for-loop numbers field each


【解决方案1】:

如果ModelMake 之间存在多对一关系,那么它们应该位于单独的表中。像这样的:

ID | Name
---------
1  | Ford
2  | Chevrolet
3  | Mitsubishi
4  | Toyota

ID | MakeID | Name
-------------------
1  | 1      | Ranger
2  | 1      | F100
3  | 1      | Explorer
4  | 2      | Silverado
5  | 2      | LUV
6  | 3      | L200
7  | 4      | Hilux

那么您的查询将是一个简单的SELECT 语句,它连接两个表:

SELECT
    Make.Name AS Brand,
    Model.Name AS Model,
    Make.ID AS Number
FROM
    Make
    INNER JOIN Model
        ON Make.ID = Model.MakeID

【讨论】:

  • 实际上我的表不是关于品牌的,我把它作为一个例子来让自己理解,我不能改变表的结构,在诊所工作,我需要将这些查询发送到 prepaid医药公司,所以他们收费。实际上,在我的表中,有可能在表中出现多次的患者,我需要为每个患者生成一个编号。
  • @martin.softpro:这在应用程序代码中可能比在 SQL 查询中更容易做到。您能否在问题中指定一些应用程序代码。通常,当您遍历记录时(按MakePatient 排序),您可以在每次该值更改时递增一个整数。 (因此您必须在循环的迭代中跟踪先前的值。)但是,该数字将与该记录相关联,它将由代码动态生成并且不能保证 每次都一样。
  • 好吧,无论如何,谢谢,我认为可以通过结束子句和分区来完成
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-01-25
  • 2015-09-01
  • 1970-01-01
  • 2013-03-13
相关资源
最近更新 更多