aiuto con query

  • Creatore Discussione Creatore Discussione slyx
  • Data di inizio Data di inizio

slyx

Nuovo Utente
4 Ott 2013
6
0
0
Salve a tutti
preannunciando che sono alle prime armi con msql

sto cercando di aiutare un amico con un gestionale per la sua attività
mi trovo in una condizione con tre tabelle con la stessa chiave :

Tabella: agente cliente schema_provv
Chiavi: agente_id agente_id agente_id e num_provv

dovrei con una query aggiornare il valore num_provv relativo all'agente_id se i clienti con agente_id sono più di un determinato numero....

è possibile tutto ciò
qualche anima pia mi aiuti
grazie
 
Questa query imposta il campo num_provv a 10 per tutti gli agenti che hanno più di 10 clienti:
Codice:
UPDATE schema_provv SET schema_provv.num_provv = 10 WHERE (SELECT COUNT(cliente.cliente_id) FROM cliente WHERE cliente.agente_id = schema_provv.agente_id) > 10
 
Semplicemente perfetto grazie mille
approfitto troppo se chiedo anche un altra cosa.....

ho il campo dataaggiunta nella tabella ordini
dovrei far si che lo stato dell'agente rimanesse attivo se un almeno suo cliente fà almeno un ordine al mese……
ma una data come diavolo la controllo?
le date si sottraggono?
 
Grazie per il link pensavo quindi datacorrente-dataacquisto <30 dovrebbe essere quello che cercavo
 
mi aiuteresti a capire dove sbaglio?

SELECT
o.agente_id ,CURRENT_DATE as dat,data_aggiunta
FROM
ordini AS o
GROUP BY
o.agente_id
WHERE
DATEDIFF(dat,ordini.data_aggiunta) < 30
 
allora pensavo di aver risolto con

SELECT
o.date_added
FROM
ordini AS o
GROUP BY
o.agente_id
HAVING

DATEDIFF(current_date()+0,o.date_added+0) < 30

che mi restituisce gli id degli agenti che hanno avuto ordini negli ultimi 30 giorni,ma io volevo usarla per fare


UPDATE agente AS sp
SET sp.`stato` = 1
WHERE sp.agente IN
(
SELECT
o.date_added
FROM
ordini AS o
GROUP BY
o.agente_id
HAVING

DATEDIFF(current_date()+0,o.date_added+0) < 30
)

ma ricevo un Affected rows : 0, Time: 0.06sec ....
 
se lo faccio ottengo un error : Unknown column 'o.date_added' in 'having clause'

se lascio o.agente_id,o.date_added

ricevo un too mane row
 

Discussioni simili