0

単純なクエリの戻りに問題があります

テーブルSan_ChaveBematech

ID     Chave_Id     Credenciada_Id    Recibo   Impresso
55     571678       10                Test     0

テーブルSan_CadastraBematech

ID     Maquina          Credenciada
5      000FEAB63D89     10
6      003067D6A4E7     10
7      003067D6A4D4     10

問題があることを問い合わせる

SELECT San_ChaveBematech.Recibo
FROM San_ChaveBematech
JOIN San_CadastraBematech
ON San_ChaveBematech.Credenciada_Id = San_CadastraBematech.Credenciada
WHERE San_ChaveBematech.Credenciada_Id = 
       (SELECT top 1 credenciada 
        FROM San_CadastraBematech 
        WHERE maquina = '000FEAB63D89')
AND San_ChaveBematech.Impresso = 0

使い方

ユーザーが登録されるアプリケーション(Windowsフォーム)があります。彼女の登録簿を私のSan_CadastraBematechテーブルに保存します。私のWebアプリケーションでは、いくつかのキーを取得できます。取得したら、データをSan_ChaveBematechテーブルに保存します。それを印刷するために、ここに置いたクエリを実行しますが、見てください。レジスタSan_ChaveBematechが1つしかないのに、クエリは同じレジスタを3回返します。

誰かが私を助けることができますか?

4

3 に答える 3

0
SELECT top 1 Ch.Recibo
  FROM San_ChaveBematech Ch
  JOIN San_CadastraBematech Ca
    ON Ch.Credenciada_Id = Ca.Credenciada
 WHERE Ca.maquina = '000FEAB63D89'
   AND Ch.Impresso = 0;
于 2012-10-31T16:55:28.173 に答える
0

それはあなたのサブクエリのためです

SELECT top 1 credenciada 
        FROM San_CadastraBematech 
        WHERE maquina = '000FEAB63D89'

値 10 を返します。これは、San_ChaveBematech.Credenciada_Id 列の 3 つのレコードで一致しています。

于 2012-10-31T16:55:45.427 に答える
0
SELECT Top 1 San_ChaveBematech.Recibo
FROM San_ChaveBematech
JOIN San_CadastraBematech
ON San_ChaveBematech.Credenciada_Id = San_CadastraBematech.Credenciada
WHERE San_CadastraBematech.maquina = '000FEAB63D89'
    AND San_ChaveBematech.Impresso = 0
Order By San_CadastraBematech.ID Desc
于 2012-10-31T16:55:51.167 に答える