comando sql

PHP, Java, JavaScript, XML, XHTML, HTML, CSS, ASP, Delphi, Assembly, LaTeX, C, UML, Flash, Perl, SQL, Python, Zope, Pascal, WML. Se conhece mais de 3 siglas referidas, este é o forum para si.

Moderadores: Administradores, Moderadores

comando sql

Mensagempor fyngr » Terça Mai 22, 2007 15:53

tou aqui com um problema de sql
tenho uma tabela de artigo (id_artigo, nm_artigo), outra de artigo_cliente (id_artigo_cliente, id_artigo, id_cliente) e quero fazer um select que mostre todos os artigos, e que refira se tem ligacao ao cliente x ou nao...
alguem me consegue dar uma ajuda? :D

cumps
Avatar do Utilizador
fyngr
Membro de Prata
Membro de Prata
 
Mensagens: 135
Registado: Segunda Out 03, 2005 16:31

Mensagempor carlos_7 » Terça Mai 22, 2007 16:01

So dou SQL pro ano senao ajudava-te
Imagem
carlos_7
Membro de Ouro
Membro de Ouro
 
Mensagens: 552
Registado: Sexta Dez 02, 2005 14:43
Localização: Aveiro (Gafanha da Nazaré)

Mensagempor XEDAS » Terça Mai 22, 2007 19:05

Código: Seleccionar todos
SELECT a.id_artigo, a.nm_artigo, b.id_cliente
  from artigo a, artigo_cliente b
where a.id_artigo (+)= b.id_artigo


Bem, sem testar não sei se a sintaxe tá muito bem
AMD 64 3500+ / Zalman 7700 CU
ASUS A8V DELUXE sock 939 / 2x1GB G.SKILL ZX + 2x512 Twinmos dual
Thermaltake Shark Black / X-Alien 500 / XFX 6800 GT 256
MAXTOR 200GB serial ATA / NEC 3500A / Logitech MX-518
XEDAS
Membro de Prata
Membro de Prata
 
Mensagens: 212
Registado: Sexta Nov 19, 2004 15:57

Mensagempor pagc » Terça Mai 22, 2007 20:22

Embora não seja a pessoa ais indicada para te ajudar, tentar não custa. Não utilizo o SQL mas uma base que usa comandos SQL, pelo que penso que a sintax seja a mesma.

SELECT A.id_artigo, A.nm_artigo, B.id_cliente, B.id_artigoc;
FROM a LEFT OUTER JOIN b ;
ON A.id_artigo = B.id_artigo;
ORDER BY A.id_artigo;
INTO TABLE query1


Este comando força a selecção de todos os artigos da tabela A e caso a tabela b não possua artigos retorna NULL.

Cumps
Imagem
Software livre é uma questão de liberdade, não de dinheiro
pagc
Membro de Ouro
Membro de Ouro
 
Mensagens: 833
Registado: Sexta Out 06, 2006 9:53
Localização: Tercena / Lisboa

Mensagempor SkylineGTR » Quarta Mai 23, 2007 8:24

Posso ter percebido ou interpretado mal, mas vê se é isto que pretendes:

Código: Seleccionar todos
SELECT A.id_artigo, A.nm_artigo,
   CASE WHEN AC.id_cliente = 'x' THEN 'sim' ELSE 'não' END) ligacao_cliente
FROM artigo A
LEFT JOIN artigo_cliente AC ON A.id_artigo = Ac.id_artigo


Em que x é o código do cliente que pretendes verificar a ligação com os artigos.
i7 920 | ASUS P6T Deluxe V2 | 6GB Corsair Dominator PC3-12800 | BFG GTX285 OC2 | 2x WD 640GB + WD 750GB + Seagate 750GB + Samsung F1 1TB | Corsair HX-620 | HP w2207 | Lian Li PC-V1110B
SkylineGTR
Membro Vitalício
Membro Vitalício
 
Mensagens: 4184
Registado: Terça Dez 28, 2004 22:26

Mensagempor fyngr » Quarta Mai 23, 2007 8:24

desde já obrigado.

tanto um como o outro comando sql duplica, se tiver 1 artigo referenciado a 2 clientes diferentes.
qualquer das formas já me desenrasquei, fiz um select aos artigos e dps por cada row vi se tava referenciado ao cliente X.
não deve estar feito da melhor maneira, mas acho que com o Access deve ser a melhor forma, o ideal era fazer uma for select numa store procedure, mas acho que com o access nao dá né.

obrigado e cumps.
Avatar do Utilizador
fyngr
Membro de Prata
Membro de Prata
 
Mensagens: 135
Registado: Segunda Out 03, 2005 16:31


Voltar para Programação

Quem está ligado:

Utilizadores a ver este Fórum: Nenhum utilizador registado e 0 visitantes

cron