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
por 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?
cumps
-

fyngr
- Membro de Prata

-
- Mensagens: 135
- Registado: Segunda Out 03, 2005 16:31
-
por carlos_7 » Terça Mai 22, 2007 16:01
So dou SQL pro ano senao ajudava-te
-
carlos_7
- Membro de Ouro

-
- Mensagens: 552
- Registado: Sexta Dez 02, 2005 14:43
- Localização: Aveiro (Gafanha da Nazaré)
por 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

-
- Mensagens: 212
- Registado: Sexta Nov 19, 2004 15:57
por 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
Software livre é uma questão de liberdade, não de dinheiro
-
pagc
- Membro de Ouro

-
- Mensagens: 833
- Registado: Sexta Out 06, 2006 9:53
- Localização: Tercena / Lisboa
por 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

-
- Mensagens: 4184
- Registado: Terça Dez 28, 2004 22:26
por 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.
-

fyngr
- 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