如何选择链接到其行的ID?

时间:2019-06-18 07:19:08

标签: sql

我必须通过sql查询获取一些数据。

问题是我的一列需要使用其自己行的ID返回然后只有1个元素,所以我想我需要一个只返回1行并具有我的行ID的子请求?

但是我尝试了,但没有任何效果。 NAF是我的ID:

SELECT 
    GAMME.GA_NBHR 
FROM 
    GAMME 
WHERE 
    GAMME.GA_DES LIKE 'TOURNAGE EBAUCHE ALU' 
    AND GAMME.NAF = (SELECT A.NAF FROM AFFAIRE A WHERE A.NAF = NAF)

SELECT 
    AFFAIRE.NAF 
FROM 
    AFFAIRE 
WHERE 
    AFFAIRE.NAF = (SELECT a.NAF FROM Affaire a WHERE a.NAF = AFFAIRE.NAF)


GAMME.GACLEUNIK = (SELECT G.GACLEUNIK 
                   FROM GAMME G, AFFAIRE A 
                   WHERE A.NAF = AFFAIRE.NAF)

SELECT 
    GAMME.GA_NBHR 
FROM 
    GAMME, AFFAIRE 
WHERE 
    GAMME.GA_DES LIKE 'TOURNAGE EBAUCHE ALU' 
    AND GAMME.NAF = AFFAIRE.NAF 
    AND NAF = (SELECT NAF FROM AFFAIRE A WHERE A.NAF = AFFAIRE.NAF)
ORDER BY 
    NAF

我想要的是,如果该行的NAF = 1,它将此查询发送到我的单元格中

SELECT GAMME.GA_NBHR 
FROM GAMME, AFFAIRE 
WHERE GAMME.GA_DES LIKE 'TOURNAGE EBAUCHE ALU' 
  AND GAMME.NAF = AFFAIRE.NAF 
  AND AFFAIRE.NAF = 1

如果该行的NAF = 2,则

SELECT GAMME.GA_NBHR 
FROM GAMME, AFFAIRE 
WHERE GAMME.GA_DES LIKE 'TOURNAGE EBAUCHE ALU' 
  AND GAMME.NAF = AFFAIRE.NAF 
  AND AFFAIRE.NAF = 2

等因为我需要在案例中使用它

2 个答案:

答案 0 :(得分:0)

很难真正理解您想要什么,但我会给您一些建议:

  • 将LIKE与“%”一起使用。 LIKE '%TOURNAGE EBAUCHE ALU'否则,请使用“ =”
  • 使用JOIN ex代替GAMME.NAF= (SELECT A.NAF FROM AFFAIRE A WHERE A.NAF = NAF)FROM GAMME inner/outer join AFFAIRE on GAMME.PK = AFFAIRE.FK
  • 阅读SQL教程(这应该是第一个)

答案 1 :(得分:0)

我知道很难理解我会变得更加清晰。但是对于加入来说,这是因为我正在实习,并且这里的人对此一无所知,所以我不想打扰他们。

那是因为我需要做这样的事情

(CASE
WHEN AFFAIRE.MODELE = 0 THEN 0
WHEN AFFAIRE.MODELE = 1 THEN 1
WHEN AFFAIRE.MODELE = 2 THEN 2
END)

而不是0,我需要获取我在此处显示的代码(我需要在以后使用相同模型更改1和2)

所以我必须选择链接到该行的NAF,例如当NAF等于0时,如果NAF是25,那么我将得到此查询

SELECT GAMME.GA_NBHR FROM GAMME,AFFAIRE WHERE GAMME.GA_DES LIKE 'TOURNAGE EBAUCHE ALU' AND GAMME.NAF = AFFAIRE.NAF AND AFFAIRE.NAF = 25

但是我不需要NAF而是使用数字,就像它更像是一个变量一样